AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Texthöhe ermitteln

Ein Thema von Amateurprofi · begonnen am 1. Sep 2012 · letzter Beitrag vom 2. Sep 2012
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von himitsu
himitsu

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

AW: Texthöhe ermitteln

  Alt 2. Sep 2012, 09:12
Bei FMX geht man z.B. für die Berechnung der Größe des Labels über das Canvas des Editd, welches sich im Label versteckt.
Und wenn das Canvas nicht existiert, dann wurde im FMX ein globales Canvas versteckt, welches dann genutzt wird, ohne es ständig neu erstellen zu müssen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.041 Beiträge
 
Delphi XE2 Professional
 
#12

AW: Texthöhe ermitteln

  Alt 2. Sep 2012, 13:15
Guck dir evtl. Font.Height an. Es sagt nicht aus wie viel Canvas Pixel Höhe die Schrift hat, inc. Leerräume, sondern die Schrift selber. Vielleicht bringt es dir was.

Ist aber schon lange her, dass ich mal etwas damit gemacht habe. Kann auch sein, dass ich Blödsinn erzähle.
Nein, dass ist überhaupt kein Blödsinn.
Jedoch, ich möchte nicht die Höhe der Schrift, sondern Schrift + Leerräume.
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#13

AW: Texthöhe ermitteln

  Alt 2. Sep 2012, 13:30
Eine weitere Möglichkeit wäre es, die Font-Dateien zu lesen.
Zumindestens zu TrueTypeFonts, hat es Doku von MS gegeben, inzwischen nur noch OpenType http://www.microsoft.com/typography/otspec/default.htm

Das könnte schon beinahe die Methode Materialvolumen*Spez.Gewicht=Gewicht sein.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.041 Beiträge
 
Delphi XE2 Professional
 
#14

AW: Texthöhe ermitteln

  Alt 2. Sep 2012, 13:40
Das ist jetzt aber völlig unlogisch. Wenn du schon die Graphics einbinden mußt (wegen TFont), kannst du’s auch gleich so (wie der Rest der Welt auch) machen:
Delphi-Quellcode:
function GetTextHeight(const FontName: string; const FontSize: integer;
  const FontStyle: TFontStyles = []): integer;
var
  Bitmap: TBitmap;
begin
  // TCanvas.TextHeight gibt die Höhe der Schriftart, die Oberlänge plus der
  // Unterlänge, nicht die eigentliche Höhe des angegebenen Strings zurück
  Bitmap:= TBitmap.Create;
  try
    Bitmap.Canvas.Font.Name:= FontName;
    Bitmap.Canvas.Font.Size:= FontSize;
    Bitmap.Canvas.Font.Style:= FontStyle;
    Result:= Bitmap.Canvas.TextHeight('Test');
  finally
    Bitmap.Free;
  end;
end;
Und was meinst du, passiert dann "hinter den Kulissen".
Ich würde wetten, in etwa das, was in meiner Funktion gemacht wird, aber ich spare mir die Bitmap.
Mag sein, dass das Windows-intern alles ganz anders abläuft als ich es mir vorstelle, aber da habe ich keinen Einblick.
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 04:51 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