Files
lazarus-ccr/components/gridprinter/examples/stringgrid/main.pas
wp_xxyyzz c44066ae41 GridPrinter: Initial commit
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@8591 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2022-11-07 23:51:58 +00:00

81 lines
1.7 KiB
ObjectPascal

unit main;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, Grids, StdCtrls,
ComboEx,
PrintersDlgs, GridPrn, GridPrnPreviewForm, GridPrnPreviewDlg;
type
{ TForm1 }
TForm1 = class(TForm)
btnPrint: TButton;
btnPreview: TButton;
Button2: TButton;
GridPrinter1: TGridPrinter;
GridPrintPreviewDialog1: TGridPrintPreviewDialog;
PageSetupDialog1: TPageSetupDialog;
PrinterSetupDialog1: TPrinterSetupDialog;
StringGrid1: TStringGrid;
procedure btnPrintClick(Sender: TObject);
procedure btnPreviewClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
public
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.btnPrintClick(Sender: TObject);
begin
GridPrinter1.Print;
end;
procedure TForm1.btnPreviewClick(Sender: TObject);
begin
GridPrintPreviewDialog1.Execute;
end;
// Populate the string grid with dummy to have something for printing.
procedure TForm1.FormCreate(Sender: TObject);
const
NUM_ROWS = 100;
NUM_COLS = 20;
var
r, c: Integer;
begin
StringGrid1.BeginUpdate;
try
StringGrid1.Clear;
StringGrid1.RowCount := NUM_ROWS + StringGrid1.FixedRows;
StringGrid1.ColCount := NUM_COLS + StringGrid1.FixedCols;
for r := StringGrid1.FixedRows to StringGrid1.RowCount-1 do
StringGrid1.Cells[0, r] := 'Row ' + IntToStr(r);
for c := StringGrid1.FixedCols to StringGrid1.ColCount-1 do
begin
StringGrid1.Cells[c, 0] := 'Column ' + IntToStr(c);
for r := StringGrid1.FixedRows to StringGrid1.RowCount-1 do
StringGrid1.cells[c, r] := Format('C%d R%d', [c, r]);
end;
finally
StringGrid1.EndUpdate;
end;
end;
end.