Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: Canvas.Textwidth liefert falschen Wert

  Alt 13. Jan 2017, 11:24
Falls dem gemeinsamen DeviceContext grade nicht de korrekte Font zugewiesen ist, dann kann man das ja leicht ändern.
Delphi-Quellcode:
Label1.Canvas.Font.Assign(Label1.Font);
Result := Label1.Canvas.TextWidth(DerText);
Aber da wir hier ja von "gemeinsam" reden und andere Prozeduren, so wie unsere, nicht immer alles korrekt initilisieren/zurücksetzen ....... nicht dass der Nächste dann mit unserem Font weiterarbeitet, obwohl er 'nen Anderen hätte.
Delphi-Quellcode:
with TFontRecall.Create(Label1.Canvas.Font) do
  try
    Label1.Canvas.Font.Assign(Label1.Font);
    Result := Label1.Canvas.TextWidth(DerText);
  finally
    Free;
  end;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (13. Jan 2017 um 13:57 Uhr)
  Mit Zitat antworten Zitat