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;