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

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

Печать текста развернутого на 90 градусов [D7, XP]


WestNik ©   (2008-02-19 18:30:00) 

Здравствуйте мастера.
Не могу никак решить проблему. Нужно распечатать StringGrid. В некоторых ячейках текст повернут на 90 градусов, а когда отправляю на печать он не разворачивается. Использую тот же код для разворота, что и в StringGrid'е

for i=...
for j=...
 begin
  s := Grid.Cells[i, j];

with Printer.Canvas do
  begin
     Font.Name := 'ARIAL';
     Font.Size := 8;
     Font.Color := clBlack;
     tf := TFont.Create;
     try
       tf.Assign(Font);
       GetObject(tf.Handle, SizeOf(lf), @lf);
       lf.lfEscapement  := 900;
       lf.lfOrientation := 0;
       tf.Handle := CreateFontIndirect(lf);
       Font.Assign(tf);
     finally
       tf.Free;
     end;

     FillRect(Rect);
     DrawText(DestCanvas.Handle, PChar(s), Length(s), Rect, DT_LEFT or DT_TOP or DT_WORDBREAK or DT_NOPREFIX);
end;
end;

Заранее благодарен.


WestNik   (2008-02-19 19:00:00) [1]

>  guav
Спасибо! Помогло :)


guav   (2008-02-19 18:37:00) [2]

>       tf.Handle := CreateFontIndirect(lf);
>       Font.Assign(tf);

А если заменить на Font.Handle := CreateFontIndirect(lf); ?


{RASkov}   (2008-02-19 18:37:00) [3]

> [0] WestNik   (19.02.08 18:30)
> with Printer.Canvas do

и

> DrawText(DestCanvas.Handle

Это что?


Наверх

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