Einzelnen Beitrag anzeigen

Benmik

Registriert seit: 11. Apr 2009
543 Beiträge
 
Delphi 11 Alexandria
 
#11

AW: Canvas.Textwidth liefert falschen Wert

  Alt 22. Apr 2019, 21:30
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;
  Mit Zitat antworten Zitat