![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как на Canvas'е писать текст под углом ? [D7]
Велосипед © (2005-07-05 01:19:00)И какие вообще есть хорошие библиотеки для работы с Canvas'ом ?
Просто Джо (2005-07-05 03:01:00) [1]Простой пример:
procedure TextOutExt (ACanvas: TCanvas; const X, Y, AAngle: Integer;
const AText: string);
var
LogFont : TLogFont;
SavedDC: Integer;
begin
with ACanvas do
begin
SavedDC := SaveDC (ACanvas.Handle);
try
GetObject(Font.Handle, SizeOf(TLogFont), @LogFont);
LogFont.lfEscapement := AAngle*10;
Font.Handle := CreateFontIndirect(LogFont);
TextOut(X,Y,AText);
finally
RestoreDC(ACanvas.Handle,SavedDC)
end;
end;
end;
Использование (на форме TImage и кнопка):
procedure TForm1.Button1Click(Sender: TObject);
begin
// обязательно используем TrueType или OpenType шрифт
Image1.Canvas.Font.Name := 'Arial';
Image1.Canvas.TextOut(0,0,'Без наклона');
TextOutExt(Image1.Canvas,100,100,45,'Разворот на 45 градусов');
Image1.Canvas.TextOut(20,20,'Опять без наклона');
end;
Юрий Зотов (2005-07-05 01:29:00) [2]См. TLogFont. Еще - CreateFont, CreateFontIndirect(Ex), SelectObject, DeleteObject. Примеры использования есть в VCL.