![]() |
Schiftgröße so einstellen, dass sie 6 Pixel hoch ist.
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:
(Das sleep ist nur da um das sichtbar zu machen.
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; |
Re: Schiftgröße so einstellen, dass sie 6 Pixel hoch ist.
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? |
Re: Schiftgröße so einstellen, dass sie 6 Pixel hoch ist.
Hmmm... Immernoch 13 PX Höhe... Kann es sein, dass dies nicht stimmt?
|
Re: Schiftgröße so einstellen, dass sie 6 Pixel hoch ist.
Hallo,
bei einer Schrift (also Font) kannst du die Größe (Size) in Punkte (Pixel) angeben. z. B.
Delphi-Quellcode:
Label1.Font.Size := 6;
|
Re: Schiftgröße so einstellen, dass sie 6 Pixel hoch ist.
Das macht keinen unterschied... Ich verstehe auch gar nicht, wo der Unterschied ist?
|
Re: Schiftgröße so einstellen, dass sie 6 Pixel hoch ist.
Zitat:
Delphi-Quellcode:
Ich glaub TextHeight gibt aber die Höhe inklusive des internen Abstands (also dem Freiraum, welcher zwischen 2 Zeilen ist) aus.
iLetter.Canvas.Font.Height := -6;
|
Re: Schiftgröße so einstellen, dass sie 6 Pixel hoch ist.
Dann müsste man ja einfach diesen Freiraum abziehen oder ist der nicht konstant?
|
Re: Schiftgröße so einstellen, dass sie 6 Pixel hoch ist.
[EDIT]
Sorry, mein Browser hat hier was gecached und nun ja, ist schon alles gesagt [/EDIT] |
Re: Schiftgröße so einstellen, dass sie 6 Pixel hoch ist.
Der hängt von der Schriftgröße ab.
Große Schrift = großer Zwischenraum und umgekehrt |
Re: Schiftgröße so einstellen, dass sie 6 Pixel hoch ist.
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.ä.)) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:45 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz