Приведенное выше решение (1) очень медленно, так как требует
рисования текста и содержит, на мой взгляд, неэффективный метод
вращения. Попробуйте взамен это:
procedure TForm1.TextUp(aRect:tRect;aTxt:String);
var
LFont: TLogFont;
hOldFont, hNewFont: HFont;
begin
GetObject(Canvas.Font.Handle,SizeOf(LFont),Addr(LFont));
LFont.lfEscapement := 900;
hNewFont := CreateFontIndirect(LFont);
hOldFont := SelectObject(Canvas.Handle,hNewFont);
Canvas.TextOut(aRect.Left+2,aRect.Top,aTxt);
hNewFont := SelectObject(Canvas.Handle,hOldFont);
DeleteObject(hNewFont);
end;
|
|