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;