Einzelnen Beitrag anzeigen

sarte

Registriert seit: 23. Mai 2008
Ort: Australien
66 Beiträge
 
Delphi 7 Enterprise
 
#1

AngleTextOut funktioniert bei Delphi 2009,bei Delphi 6 nicht

  Alt 15. Mär 2010, 19:37
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
  Mit Zitat antworten Zitat