Einzelnen Beitrag anzeigen

kub

Registriert seit: 13. Nov 2008
44 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: Textbreite innerhalb der Titelleiste

  Alt 18. Jun 2010, 10:34
Danke für Eure Tipps. Mit folgender Funktion kann ich die Textbreite ermitteln.

Delphi-Quellcode:
function TForm1.GetCaptionWidth: integer;
var
  MyStruct: TNonClientMetrics;
begin
  MyStruct.cbSize:=SizeOf(TNonClientMetrics);
  SystemParametersInfo(
    SPI_GETNONCLIENTMETRICS,
    SizeOf(TNonClientMetrics),
    @MyStruct,
    0);
  Self.Canvas.Font.Handle := CreateFontIndirect (MyStruct.lfCaptionFont);
  Result:= Self.Canvas.TextExtent (Self.Caption).cx;
end;
Ich bin mir jetzt nur nicht sicher, ob ich mit CreateFontIndirect ein Memoryleak erzeuge. Wenn ja, wie kann ich den erzeugten Font freigeben, ohne den Font meines Forms zu zerstören?
  Mit Zitat antworten Zitat