Недавно добавленные исходники

•  DeLiKaTeS Tetris (Тетрис)  4 604

•  TDictionary Custom Sort  6 612

•  Fast Watermark Sources  6 389

•  3D Designer  9 337

•  Sik Screen Capture  6 719

•  Patch Maker  7 104

•  Айболит (remote control)  7 108

•  ListBox Drag & Drop  5 971

•  Доска для игры Реверси  97 528

•  Графические эффекты  7 306

•  Рисование по маске  6 596

•  Перетаскивание изображений  5 469

•  Canvas Drawing  5 841

•  Рисование Луны  5 558

•  Поворот изображения  5 075

•  Рисование стержней  3 641

•  Paint on Shape  2 878

•  Генератор кроссвордов  3 772

•  Головоломка Paletto  3 031

•  Теорема Монжа об окружностях  3 842

•  Пазл Numbrix  2 529

•  Заборы и коммивояжеры  3 236

•  Игра HIP  2 201

•  Игра Go (Го)  2 132

•  Симулятор лифта  2 513

•  Программа укладки плитки  2 160

•  Генератор лабиринта  2 651

•  Проверка числового ввода  2 312

•  HEX View  2 644

•  Физический маятник  2 268

 
скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Печать повернутого текста 4



Приведенное выше решение (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;