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

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

Печать TMemo [D6]


Vadia ©   (2002-11-03 15:49:00) 

Как бы мне разобраться с печатью тмемки? Вот текст процедуры:
procedure TForm1.Print(Sender: TObject);
begin
with Printer do
Begin
BeginDoc;
Memo1.PaintTo(Handle,10,10);
EndDoc;
End;
end;
В результате мой принтер печатает TMemo. Всё хорошо, но печатает он её очень мелко в левом верхнем углу. Как изменить масштаб или растянуть эту мему на весь лист A4?


BOA_KAA   (2002-11-03 17:01:00) [1]

procedure TFormI.ButtonlClick(Sender: TObject);
var
Y,dY,k: Integer;
begin
if Memol.Lines.Count=0 then Exit;
Screen.Cursor := crHourGlass;
with Printer do
begin
BeginDoc;
with Printer.Canvas do
begin
Font := Memol.Font;
dY := TextHeight("1"); // Определяем высоту строки
Y := 2*dY; // Отступ от верхнего края листа
for k := 0 to Memol.Lines.Count-1 do
begin
//Выводим очередную строку TextOut(О,Y,Memol.Lines[k]);
//Смещаемся на следующую строку листа
inc(Y,dY) ;
if PageHeight-Y<2*dY then
// Нижний край листа?
begin //Да
NewPage; //Переход на новый лист
// Выводим номер страницы
TextOut(0,0,"с."+IntToStr(PageNumber)) ;
Y := 2*dY
end;
end;
end;
EndDoc;
end;
Screen.Cursor := crDefault;
end;

Всего лишь пример из книги...


Наверх

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