Einzelnen Beitrag anzeigen

Amateurprofi

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

AW: Texthöhe ermitteln

  Alt 2. Sep 2012, 14: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