Hi Leute,
ich verstehe was nicht. Diese Funktion:
Delphi-Quellcode:
procedure TDiagramm.AngleTextOut(const sText: String; x, y, angle:integer);
var
LogFont: TLogFont;
SaveFont: TFont;
begin
SaveFont := TFont.Create;
SaveFont.Assign(Image1.Canvas.Font);
GetObject(SaveFont.Handle, sizeof(TLogFont), @LogFont);
with LogFont do
begin
lfEscapement := angle *10;
lfPitchAndFamily := FIXED_PITCH or FF_DONTCARE;
end; {with}
Image1.Canvas.Font.Handle := CreateFontIndirect(LogFont);
SetBkMode(Image1.Canvas.Handle, TRANSPARENT);
Image1.Canvas.TextOut(x, y, sText);
Image1.Canvas.Font.Assign(SaveFont);
SaveFont.Free;
end;
Image1 ist vom Typ TImage und ist beim Privatbereich gespeichert.
So bei Delphi 2009 (zu Hause) geht diese Funktion wunderbar, wenn ich aber in der Schule bin mit Delphi 6 und die Exe erstelle, dann geht die Funktion nicht. Es passiert nichts, die Schrift bleibt bei 0 Grad. Aber, wenn ich z.b. den Charset von der Font auf eine andere Stelle (nicht alles geht, aber z.b. auf russisch) dann geht es plötzlich. Die Schrift sieht aber nicht sehr scharf aus... also sehr unschön.
Woran kann es liegen? Liegt es an Delphi 6 oder sogar an Windows XP? Da ich zu Hause Windows 7 habe. Und im Internet gibt es auch andere Funktionen, aber keine funktioniert bei Delphi 6 ohne den Charset zu ändern.....
Danke