Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Распечатать TStringList

Delphi , ОС и Железо , Принтеры и Печать

Распечатать TStringList


uses 
  Printers; 

procedure PrintGrid(sGrid: TStringGrid; sTitle: string); 
var 
  X1, X2: Integer; 
  Y1, Y2: Integer; 
  TmpI: Integer; 
  F: Integer; 
  TR: TRect; 
begin 
  Printer.Title := sTitle; 
  Printer.BeginDoc; 
  Printer.Canvas.Pen.Color  := 0; 
  Printer.Canvas.Font.Name  := 'Times New Roman'; 
  Printer.Canvas.Font.Size  := 12; 
  Printer.Canvas.Font.Style := [fsBold, fsUnderline];
  Printer.Canvas.TextOut(0, 100, Printer.Title); 
  for F := 1 to sGrid.ColCount - 1 do  
  begin
    X1 := 0; 
    for TmpI := 1 to (F - 1) do 
      X1 := X1 + 5 * (sGrid.ColWidths[TmpI]); 
    Y1 := 300; 
    X2 := 0; 
    for TmpI := 1 to F do 
      X2 := X2 + 5 * (sGrid.ColWidths[TmpI]); 
    Y2 := 450; 
    TR := Rect(X1, Y1, X2 - 30, Y2); 
    Printer.Canvas.Font.Style := [fsBold]; 
    Printer.Canvas.Font.Size := 7; 
    Printer.Canvas.TextRect(TR, X1 + 50, 350, sGrid.Cells[F, 0]); 
    Printer.Canvas.Font.Style := []; 
    for TmpI := 1 to sGrid.RowCount - 1 do  
    begin 
      Y1 := 150 * TmpI + 300; 
      Y2 := 150 * (TmpI + 1) + 300; 
      TR := Rect(X1, Y1, X2 - 30, Y2); 
      Printer.Canvas.TextRect(TR, X1 + 50, Y1 + 50, sGrid.Cells[F, TmpI]); 
    end; 
  end; 
  Printer.EndDoc; 
end; 


//Examplem, Beispiel: 

procedure TForm1.Button1Click(Sender: TObject); 
begin 
  PrintGrid(StringGrid1, 'Print Stringgrid'); 
end;

Перевод контента на русский язык:

Программный код, предоставленный в этом примере, - это скрипт программирования Delphi, который печатает TStringGrid (контроль таблицы) на принтере. Процедура PrintGrid принимает два параметра: sGrid, которое является TStringGrid для печати, и sTitle, которое является заголовком печати.

Работа кода происходит следующим образом:

  1. Он устанавливает заголовок принтера с помощью Printer.Title := sTitle;.
  2. Он начинает новый документ с помощью Printer.BeginDoc;.
  3. Он настраивает шрифт для печати с помощью Printer.Canvas.Font.Name := 'Times New Roman';, и т.д.
  4. Он печатает заголовок печати в координатах (0, 100) с помощью Printer.Canvas.TextOut(0, 100, Printer.Title);.
  5. Он проходит по каждому столбцу таблицы, рассчитывая координаты x для печати заголовков и данных строк.
  6. Для каждого столбца он создает прямоугольник (TR) с рассчитанными координатами x и печатает ячейку заголовка в координатах (X1+50, 350) с помощью Printer.Canvas.TextRect(TR, X1+50, 350, sGrid.Cells[F, 0]);.
  7. Затем он проходит по каждой строке таблицы, печатая каждую ячейку в текущем столбце в рассчитанных координатах y.
  8. Наконец, он заканчивает документ с помощью Printer.EndDoc;.

Пример кода вызывает процедуру PrintGrid при клике на кнопке формы. В этом случае печатается содержимое StringGrid1 с заголовком "Печать Stringgrid".

Некоторые предложения по улучшению:

  • Рассмотрите добавление обработки ошибок в случае, если принтер не может напечатать или TStringGrid имеет недопустимые данные.
  • Вам может потребоваться изменение размеров и стиля шрифта в зависимости от вашей конкретной необходимости печати.
  • Если вы планируете печатать большие объемы данных, рассмотрите оптимизацию кода для производительности.

Что касается кода himself, он хорошо структурирован и легко понятен. Имена переменных описательны, а логика straightforward. В целом, хорошая работа!

Показано пример реализации процедуры для печати TStringList на принтере с использованием компонента Printers.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Принтеры и Печать ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 12:29:22/0.0037078857421875/0