AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Schiftgröße so einstellen, dass sie 6 Pixel hoch ist.
Thema durchsuchen
Ansicht
Themen-Optionen

Schiftgröße so einstellen, dass sie 6 Pixel hoch ist.

Ein Thema von xZise · begonnen am 1. Aug 2006 · letzter Beitrag vom 1. Aug 2006
Antwort Antwort
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#1

Schiftgröße so einstellen, dass sie 6 Pixel hoch ist.

  Alt 1. Aug 2006, 14:48
Wie kann ich das so berechnen, das die Schriftgröße so groß ist, dass ein Buchstabe ('A') <= 6 Pixel hoch ist?

Bisher habe ich diese Variante... Allerdings gibts das Probelm das TextHeight mindestens 13 Pixel sind:
Delphi-Quellcode:
Best := false;
FontHeight := 18;
while not Best do begin
  dec(FontHeight);
  iLetter.Canvas.Font.Height := FontHeight;
  lFontHeight.Caption := IntToStr(FontHeight);
  lFontHeight.Repaint;
  label3.Caption := IntToStr(iLetter.Canvas.TextHeight('A'));
  label3.Repaint;
  if iLetter.Canvas.TextHeight('A') <= 6 then begin
    Best := true;
  end else begin
    iLetter.Canvas.TextOut(0,0, 'A');
    iLetter.Repaint;
  end;
  Sleep(60);
end;
(Das sleep ist nur da um das sichtbar zu machen.
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#2

Re: Schiftgröße so einstellen, dass sie 6 Pixel hoch ist.

  Alt 1. Aug 2006, 15:07
Nicht alle Fonts lassen sich immer (auf diese Weise) frei scalieren ... es gibt bestimmte Werte/Grenzen, die eingehalten werden müssen.

Versuch es mal mit "Small Fonts" als Schriftart?
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Schiftgröße so einstellen, dass sie 6 Pixel hoch ist.

  Alt 1. Aug 2006, 15:09
Hmmm... Immernoch 13 PX Höhe... Kann es sein, dass dies nicht stimmt?
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.336 Beiträge
 
Delphi XE2 Professional
 
#4

Re: Schiftgröße so einstellen, dass sie 6 Pixel hoch ist.

  Alt 1. Aug 2006, 15:14
Hallo,

bei einer Schrift (also Font) kannst du die Größe (Size) in Punkte (Pixel) angeben.

z. B.
  Label1.Font.Size := 6;
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#5

Re: Schiftgröße so einstellen, dass sie 6 Pixel hoch ist.

  Alt 1. Aug 2006, 15:15
Das macht keinen unterschied... Ich verstehe auch gar nicht, wo der Unterschied ist?
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#6

Re: Schiftgröße so einstellen, dass sie 6 Pixel hoch ist.

  Alt 1. Aug 2006, 15:16
Zitat:
Mit Height können Sie die Höhe einer Schrift in Pixel festlegen. Bei einem negativen Wert wird der interne Abstand über den einzelnen Textzeilen nicht berücksichtigt. Bei einem positiven Wert für Height errechnet sich die Höhe aus der Schrifthöhe plus dem internen Abstand.
Das sollte demnach ausreichen.
iLetter.Canvas.Font.Height := -6; Ich glaub TextHeight gibt aber die Höhe inklusive des internen Abstands (also dem Freiraum, welcher zwischen 2 Zeilen ist) aus.
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#7

Re: Schiftgröße so einstellen, dass sie 6 Pixel hoch ist.

  Alt 1. Aug 2006, 15:18
Dann müsste man ja einfach diesen Freiraum abziehen oder ist der nicht konstant?
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#8

Re: Schiftgröße so einstellen, dass sie 6 Pixel hoch ist.

  Alt 1. Aug 2006, 15:20
[EDIT]
Sorry, mein Browser hat hier was gecached und nun ja, ist schon alles gesagt
[/EDIT]
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#9

Re: Schiftgröße so einstellen, dass sie 6 Pixel hoch ist.

  Alt 1. Aug 2006, 15:22
Der hängt von der Schriftgröße ab.

Große Schrift = großer Zwischenraum
und umgekehrt
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#10

Re: Schiftgröße so einstellen, dass sie 6 Pixel hoch ist.

  Alt 1. Aug 2006, 15:27
1. Mir fällt gerade auf das bei .Height < -8 nix mehr passiert
2. Ich habe es mit Height/Size +/- probiert

Immer nur 13 (welches aber auch mit 1 zusammenhängen könnte... (getestet mit MS Sans Serif (o.ä.))
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:29 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz