Einzelnen Beitrag anzeigen

WS1976
(Gast)

n/a Beiträge
 
#1

gedrehter Text verändert Font

  Alt 13. Jan 2009, 07:14
Hallo,

ich benutze den folgenden Code zum gedrehten ausgeben von Texten( stammt aus dem Delphi-Treff ):

Delphi-Quellcode:
procedure TextOutAngle(const Canvas: TCanvas; X, Y: Integer; const AText: string; AAngle: Integer);
var
  hCurFont: HFONT;
  LogFont: TLogFont;
begin
  with Canvas do
  begin
    hCurFont := Font.Handle;
    try
      GetObject(Font.Handle, SizeOf(LogFont), @LogFont);
      LogFont.lfEscapement := AAngle;
      LogFont.lfOrientation := AAngle;
      Font.Handle:= CreateFontIndirect(LogFont);
      try
        TextOut(X, Y, AText);
      finally
        DeleteObject(Font.Handle);
      end;
    finally
      Font.Handle := hCurFont;
    end;
  end;
end;

procedure TForm1.Button4Click(Sender: TObject);
var n:integer;
begin
  TextOutAngle(PB1.Canvas,100,100,'hallo',900);
end;
Funktioniert alles problemlos, nur mit dem Schönheitsfehler, dass das Steuerelement das danach den Fokus hat seinen Font verändert.
Ich zeichne auf eine Tpaintbox.
Weiss jemand warum das so ist?

Grüsse
Rainer
  Mit Zitat antworten Zitat