Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как на 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.


Наверх

Титульная страница Поиск, карта сайта Написать письмо