Diese Frage habe ich mit Interesse gelesen, da bei mir TextExtent auch immer nicht funktioniert hat und ich dann zu GetTextExtentPoint32 gegriffen habe, was aber auch immer zu niedrige Werte lieferte.
Nun habe ich
das hier ausgegraben, das zunächst mal gut funktioniert. Ist das nicht die viel bessere Lösung?
Delphi-Quellcode:
function ErmittleTextlänge(Fnt:TFont;
const Txt:
string): Integer;
var DC:HDC; Size:Windows.TSize;
begin
DC := GetDC(0);
SelectObject(
DC, Fnt.Handle);
GetTextExtentPoint32(
DC, PChar(Txt), Length(Txt), Size);
ReleaseDC(0,
DC);
Result := Size.cx;
end;