Delphi: заметки программиста. Часть 2

Листинг 2

procedure TForm1.Button2Click(Sender: TObject); 
// Печать содержимого редактора c помощью свойства Printer.Canvas 
var 
  Y,dY,X,k: Integer; 
  S: String; 
begin 
  if Memo1.Lines.Count=0 then Exit; 
  Screen.Cursor := crHourGlass; 
  with Printer do 
  begin 
    BeginDoc; 
    with Canvas do 
    begin 
      Font := Memo1.Font; 
      dY := TextHeight('1');    //    Определяем высоту строки 
      Y := 3*dY;                   // Отступ от верхнего края листа 
      X := PageWidth div 15;       // Отступ от левого края 
      for k := 0 to Memo1.Lines.Count-1    do 
      begin 
        // Выводим очередную строку 
        TextOut(X,Y,Memo1.Lines[k]); 
        // Смещаемся на следующую    строку листа 
        inc(Y,dY); 
        if PageHeight-Y<2*dY then         // Нижний край листа? 
        begin                             // Да 
          NewPage;                        // Переход на новый лист 
          // Выводим номер    страницы посередине листа: 
          S := '- '+IntToStr(PageNumber)+'    -'; 
          TextOut((PageWidth-TextWidth(S))    div 2, dy, S); 
          // и отчеркиваем    его от текста: 
          MoveTo(X, 3*dy div    2); 
          LineTo(PageWidth-X,    9*dy div 4); 
          // Ордината    первой строки: 
          Y := 3*dY 
        end// if PageHeight-Y<2*dY  
      end// for k := 0 to Memo1.Lines.Count-1    do 
    end;  // with Canvas do 
    EndDoc; 
  end// with Printer do 
  Screen.Cursor := crDefault; 
end; 

возврат

Наш канал на Youtube

1999 1 2 3 4 5 6 7 8 9 10 11 12
2000 1 2 3 4 5 6 7 8 9 10 11 12
2001 1 2 3 4 5 6 7 8 9 10 11 12
2002 1 2 3 4 5 6 7 8 9 10 11 12
2003 1 2 3 4 5 6 7 8 9 10 11 12
2004 1 2 3 4 5 6 7 8 9 10 11 12
2005 1 2 3 4 5 6 7 8 9 10 11 12
2006 1 2 3 4 5 6 7 8 9 10 11 12
2007 1 2 3 4 5 6 7 8 9 10 11 12
2008 1 2 3 4 5 6 7 8 9 10 11 12
2009 1 2 3 4 5 6 7 8 9 10 11 12
2010 1 2 3 4 5 6 7 8 9 10 11 12
2011 1 2 3 4 5 6 7 8 9 10 11 12
2012 1 2 3 4 5 6 7 8 9 10 11 12
2013 1 2 3 4 5 6 7 8 9 10 11 12
Популярные статьи
КомпьютерПресс использует