in D2009 geht es auch so (ich weiß nur nicht ab wann .Orientation in TFont drin ist ... D7 kennt es noch nicht)
Delphi-Quellcode:
Procedure TextOutAngle(const Canvas: TCanvas; X, Y: Integer;
const AText: string; AAngle: Integer);
var
OldOrientation: Integer;
begin
OldOrientation := Canvas.Font.Orientation;
Canvas.Font.Orientation := AAngle;
Canvas.TextOut(x, y, AText);
Canvas.Font.Orientation := OldOrientation;
end;
// oder
Procedure TextOutAngle(const Canvas: TCanvas; X, Y: Integer;
const AText: string; AAngle: Integer);
var
OldFont: TFont;
begin
OldFont := TFont.Create;
Try
OldFont.Assign(Canvas.Font);
Canvas.Font.Orientation := AAngle;
// hier ließe sich dann noch mehr ändern und es würde auch wieder zurückgesetzt
Canvas.TextOut(x, y, AText);
Finally
Canvas.Font.Assign(OldFont);
OldFont.Free;
End;
end;
Warum der Fehler bei dir auftritt, weiß ich nicht, aber eventuell gibt eine Zuweisung auf Font.Handle das alte
Handle frei