You've already forked lazarus-ccr
GridPrinter: Add example how to print a spreadsheet grid (requires fpspreadsheet)
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@8624 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -0,0 +1,93 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<CONFIG>
|
||||||
|
<ProjectOptions>
|
||||||
|
<Version Value="12"/>
|
||||||
|
<PathDelim Value="\"/>
|
||||||
|
<General>
|
||||||
|
<SessionStorage Value="InProjectDir"/>
|
||||||
|
<Title Value="fpspreadsheet_demo"/>
|
||||||
|
<Scaled Value="True"/>
|
||||||
|
<ResourceType Value="res"/>
|
||||||
|
<UseXPManifest Value="True"/>
|
||||||
|
<XPManifest>
|
||||||
|
<DpiAware Value="True"/>
|
||||||
|
</XPManifest>
|
||||||
|
</General>
|
||||||
|
<BuildModes>
|
||||||
|
<Item Name="Default" Default="True"/>
|
||||||
|
</BuildModes>
|
||||||
|
<PublishOptions>
|
||||||
|
<Version Value="2"/>
|
||||||
|
<UseFileFilters Value="True"/>
|
||||||
|
</PublishOptions>
|
||||||
|
<RunParams>
|
||||||
|
<FormatVersion Value="2"/>
|
||||||
|
<Modes>
|
||||||
|
<Mode Name="default">
|
||||||
|
<local>
|
||||||
|
<CommandLineParams Value="test.xlsx"/>
|
||||||
|
</local>
|
||||||
|
</Mode>
|
||||||
|
</Modes>
|
||||||
|
</RunParams>
|
||||||
|
<RequiredPackages>
|
||||||
|
<Item>
|
||||||
|
<PackageName Value="GridPrinterPkg"/>
|
||||||
|
</Item>
|
||||||
|
<Item>
|
||||||
|
<PackageName Value="laz_fpspreadsheet_visual"/>
|
||||||
|
</Item>
|
||||||
|
<Item>
|
||||||
|
<PackageName Value="LCL"/>
|
||||||
|
</Item>
|
||||||
|
</RequiredPackages>
|
||||||
|
<Units>
|
||||||
|
<Unit>
|
||||||
|
<Filename Value="fpspreadsheet_demo.lpr"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
<UnitName Value="Project1"/>
|
||||||
|
</Unit>
|
||||||
|
<Unit>
|
||||||
|
<Filename Value="main.pas"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
<ComponentName Value="MainForm"/>
|
||||||
|
<HasResources Value="True"/>
|
||||||
|
<ResourceBaseClass Value="Form"/>
|
||||||
|
</Unit>
|
||||||
|
</Units>
|
||||||
|
</ProjectOptions>
|
||||||
|
<CompilerOptions>
|
||||||
|
<Version Value="11"/>
|
||||||
|
<PathDelim Value="\"/>
|
||||||
|
<Target>
|
||||||
|
<Filename Value="fpspreadsheet_demo"/>
|
||||||
|
</Target>
|
||||||
|
<SearchPaths>
|
||||||
|
<IncludeFiles Value="$(ProjOutDir)"/>
|
||||||
|
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
|
||||||
|
</SearchPaths>
|
||||||
|
<Linking>
|
||||||
|
<Debugging>
|
||||||
|
<DebugInfoType Value="dsDwarf3"/>
|
||||||
|
</Debugging>
|
||||||
|
<Options>
|
||||||
|
<Win32>
|
||||||
|
<GraphicApplication Value="True"/>
|
||||||
|
</Win32>
|
||||||
|
</Options>
|
||||||
|
</Linking>
|
||||||
|
</CompilerOptions>
|
||||||
|
<Debugging>
|
||||||
|
<Exceptions>
|
||||||
|
<Item>
|
||||||
|
<Name Value="EAbort"/>
|
||||||
|
</Item>
|
||||||
|
<Item>
|
||||||
|
<Name Value="ECodetoolError"/>
|
||||||
|
</Item>
|
||||||
|
<Item>
|
||||||
|
<Name Value="EFOpenError"/>
|
||||||
|
</Item>
|
||||||
|
</Exceptions>
|
||||||
|
</Debugging>
|
||||||
|
</CONFIG>
|
@ -0,0 +1,25 @@
|
|||||||
|
program Project1;
|
||||||
|
|
||||||
|
{$mode objfpc}{$H+}
|
||||||
|
|
||||||
|
uses
|
||||||
|
{$IFDEF UNIX}
|
||||||
|
cthreads,
|
||||||
|
{$ENDIF}
|
||||||
|
{$IFDEF HASAMIGA}
|
||||||
|
athreads,
|
||||||
|
{$ENDIF}
|
||||||
|
Interfaces, // this includes the LCL widgetset
|
||||||
|
Forms, main
|
||||||
|
{ you can add units after this };
|
||||||
|
|
||||||
|
{$R *.res}
|
||||||
|
|
||||||
|
begin
|
||||||
|
RequireDerivedFormResource:=True;
|
||||||
|
Application.Scaled:=True;
|
||||||
|
Application.Initialize;
|
||||||
|
Application.CreateForm(TMainForm, MainForm);
|
||||||
|
Application.Run;
|
||||||
|
end.
|
||||||
|
|
124
components/gridprinter/examples/fpspreadsheet/main.lfm
Normal file
124
components/gridprinter/examples/fpspreadsheet/main.lfm
Normal file
@ -0,0 +1,124 @@
|
|||||||
|
object MainForm: TMainForm
|
||||||
|
Left = 331
|
||||||
|
Height = 498
|
||||||
|
Top = 129
|
||||||
|
Width = 719
|
||||||
|
Caption = 'Printing a TsWorksheetGrid'
|
||||||
|
ClientHeight = 498
|
||||||
|
ClientWidth = 719
|
||||||
|
OnCreate = FormCreate
|
||||||
|
LCLVersion = '2.3.0.0'
|
||||||
|
object ButtonPanel: TPanel
|
||||||
|
Left = 6
|
||||||
|
Height = 25
|
||||||
|
Top = 467
|
||||||
|
Width = 707
|
||||||
|
Align = alBottom
|
||||||
|
AutoSize = True
|
||||||
|
BorderSpacing.Around = 6
|
||||||
|
BevelOuter = bvNone
|
||||||
|
ClientHeight = 25
|
||||||
|
ClientWidth = 707
|
||||||
|
TabOrder = 1
|
||||||
|
object btnPrint: TButton
|
||||||
|
AnchorSideLeft.Control = btnOpenFile
|
||||||
|
AnchorSideLeft.Side = asrBottom
|
||||||
|
AnchorSideTop.Control = ButtonPanel
|
||||||
|
Left = 89
|
||||||
|
Height = 25
|
||||||
|
Top = 0
|
||||||
|
Width = 75
|
||||||
|
BorderSpacing.Left = 6
|
||||||
|
Caption = 'Print...'
|
||||||
|
OnClick = btnPrintClick
|
||||||
|
TabOrder = 1
|
||||||
|
end
|
||||||
|
object btnPreview: TButton
|
||||||
|
AnchorSideLeft.Control = btnPrint
|
||||||
|
AnchorSideLeft.Side = asrBottom
|
||||||
|
AnchorSideTop.Control = ButtonPanel
|
||||||
|
Left = 170
|
||||||
|
Height = 25
|
||||||
|
Top = 0
|
||||||
|
Width = 75
|
||||||
|
BorderSpacing.Left = 6
|
||||||
|
Caption = 'Preview...'
|
||||||
|
OnClick = btnPreviewClick
|
||||||
|
TabOrder = 2
|
||||||
|
end
|
||||||
|
object btnOpenFile: TButton
|
||||||
|
AnchorSideLeft.Control = ButtonPanel
|
||||||
|
AnchorSideTop.Control = ButtonPanel
|
||||||
|
Left = 0
|
||||||
|
Height = 25
|
||||||
|
Top = 0
|
||||||
|
Width = 83
|
||||||
|
AutoSize = True
|
||||||
|
Caption = 'Open file...'
|
||||||
|
OnClick = btnOpenFileClick
|
||||||
|
TabOrder = 0
|
||||||
|
end
|
||||||
|
end
|
||||||
|
object sWorkbookTabControl1: TsWorkbookTabControl
|
||||||
|
Left = 0
|
||||||
|
Height = 461
|
||||||
|
Top = 0
|
||||||
|
Width = 719
|
||||||
|
TabIndex = 0
|
||||||
|
Tabs.Strings = (
|
||||||
|
'Sheet1'
|
||||||
|
)
|
||||||
|
Align = alClient
|
||||||
|
TabOrder = 0
|
||||||
|
WorkbookSource = sWorkbookSource1
|
||||||
|
object sWorksheetGrid1: TsWorksheetGrid
|
||||||
|
Left = 2
|
||||||
|
Height = 436
|
||||||
|
Top = 23
|
||||||
|
Width = 715
|
||||||
|
FrozenCols = 0
|
||||||
|
FrozenRows = 0
|
||||||
|
PageBreakPen.Color = clBlue
|
||||||
|
PageBreakPen.Style = psDash
|
||||||
|
ReadFormulas = False
|
||||||
|
WorkbookSource = sWorkbookSource1
|
||||||
|
Align = alClient
|
||||||
|
AutoAdvance = aaDown
|
||||||
|
DefaultColWidth = 64
|
||||||
|
DefaultRowHeight = 22
|
||||||
|
TabOrder = 0
|
||||||
|
end
|
||||||
|
end
|
||||||
|
object GridPrinter1: TGridPrinter
|
||||||
|
Grid = sWorksheetGrid1
|
||||||
|
Footer.Font.Height = -11
|
||||||
|
Footer.FontSize = 8
|
||||||
|
Header.Font.Height = -11
|
||||||
|
Header.FontSize = 8
|
||||||
|
ShowPrintDialog = gpdPrintDialog
|
||||||
|
OnAfterPrint = GridPrinter1AfterPrint
|
||||||
|
OnBeforePrint = GridPrinter1BeforePrint
|
||||||
|
OnGetRowCount = GridPrinter1GetRowCount
|
||||||
|
OnGetColCount = GridPrinter1GetColCount
|
||||||
|
OnPrintCell = GridPrinter1PrintCell
|
||||||
|
Left = 231
|
||||||
|
Top = 142
|
||||||
|
end
|
||||||
|
object GridPrintPreviewDialog1: TGridPrintPreviewDialog
|
||||||
|
FormParams.PixelsPerInch = 96
|
||||||
|
GridPrinter = GridPrinter1
|
||||||
|
Left = 448
|
||||||
|
Top = 142
|
||||||
|
end
|
||||||
|
object sWorkbookSource1: TsWorkbookSource
|
||||||
|
FileFormat = sfUser
|
||||||
|
Options = []
|
||||||
|
Left = 112
|
||||||
|
Top = 142
|
||||||
|
end
|
||||||
|
object OpenDialog1: TOpenDialog
|
||||||
|
Filter = 'All spreadsheet files|*.xls;*.xlsx;*.ods;*.csv|All Excel files (*.xls, *.xlsx)|*.xls;*.xlsx|Excel XML spreadsheet (*.xlsx)|*.xlsx|Excel XP/2003 XML spreadsheet (*.xml)|*.xml|Excel 97-2003 spreadsheets (*.xls)|*.xls|Excel 5 spreadsheet (*.xls)|*.xls|Excel 2.1 spreadsheets (*.xls)|*.xls|LibreOffice/OpenOffice spreadsheet (*.ods)|*.ods|HTML files (*.html; *.htm)|*.html;*.htm|Comma-separated text files (*.csv; *.txt)|*.csv;*.txt'
|
||||||
|
Left = 230
|
||||||
|
Top = 248
|
||||||
|
end
|
||||||
|
end
|
133
components/gridprinter/examples/fpspreadsheet/main.pas
Normal file
133
components/gridprinter/examples/fpspreadsheet/main.pas
Normal file
@ -0,0 +1,133 @@
|
|||||||
|
unit main;
|
||||||
|
|
||||||
|
{$mode objfpc}{$H+}
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ExtCtrls, StdCtrls,
|
||||||
|
Grids, Types, GridPrn, GridPrnPreviewDlg,
|
||||||
|
fpspreadsheet, fpstypes, fpspreadsheetgrid, fpspreadsheetctrls, fpsAllFormats;
|
||||||
|
|
||||||
|
type
|
||||||
|
|
||||||
|
{ TMainForm }
|
||||||
|
|
||||||
|
TMainForm = class(TForm)
|
||||||
|
btnPrint: TButton;
|
||||||
|
btnPreview: TButton;
|
||||||
|
btnOpenFile: TButton;
|
||||||
|
GridPrinter1: TGridPrinter;
|
||||||
|
GridPrintPreviewDialog1: TGridPrintPreviewDialog;
|
||||||
|
OpenDialog1: TOpenDialog;
|
||||||
|
ButtonPanel: TPanel;
|
||||||
|
sWorkbookSource1: TsWorkbookSource;
|
||||||
|
sWorkbookTabControl1: TsWorkbookTabControl;
|
||||||
|
sWorksheetGrid1: TsWorksheetGrid;
|
||||||
|
procedure btnPrintClick(Sender: TObject);
|
||||||
|
procedure btnPreviewClick(Sender: TObject);
|
||||||
|
procedure btnOpenFileClick(Sender: TObject);
|
||||||
|
procedure FormCreate(Sender: TObject);
|
||||||
|
procedure GridPrinter1AfterPrint(Sender: TObject);
|
||||||
|
procedure GridPrinter1BeforePrint(Sender: TObject);
|
||||||
|
procedure GridPrinter1GetColCount(Sender: TObject; AGrid: TCustomGrid;
|
||||||
|
var AColCount: Integer);
|
||||||
|
procedure GridPrinter1GetRowCount(Sender: TObject; AGrid: TCustomGrid;
|
||||||
|
var ARowCount: Integer);
|
||||||
|
procedure GridPrinter1PrintCell(Sender: TObject; AGrid: TCustomGrid;
|
||||||
|
ACanvas: TCanvas; ACol, ARow: Integer; ARect: TRect);
|
||||||
|
private
|
||||||
|
FGridCanvas: TCanvas;
|
||||||
|
FOldPadding: Integer;
|
||||||
|
FNewPadding: Integer;
|
||||||
|
|
||||||
|
public
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
var
|
||||||
|
MainForm: TMainForm;
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
{$R *.lfm}
|
||||||
|
|
||||||
|
uses
|
||||||
|
Variants;
|
||||||
|
|
||||||
|
type
|
||||||
|
TsWorksheetGridOpener = class(TsWorksheetGrid);
|
||||||
|
|
||||||
|
{ TMainForm }
|
||||||
|
|
||||||
|
procedure TMainForm.FormCreate(Sender: TObject);
|
||||||
|
begin
|
||||||
|
if ParamCount > 0 then
|
||||||
|
sWorkbookSource1.LoadFromSpreadsheetFile(ParamStr(1));
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TMainForm.GridPrinter1AfterPrint(Sender: TObject);
|
||||||
|
begin
|
||||||
|
sWorksheetGrid1.Canvas := FGridCanvas;
|
||||||
|
varCellPadding := FOldPadding;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TMainForm.GridPrinter1BeforePrint(Sender: TObject);
|
||||||
|
begin
|
||||||
|
FGridCanvas := sWorksheetGrid1.Canvas;
|
||||||
|
sWorksheetGrid1.Canvas := GridPrinter1.Canvas;
|
||||||
|
FOldPadding := varCellPadding;
|
||||||
|
FNewPadding := GridPrinter1.Padding - varCellPadding;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TMainForm.btnPrintClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
GridPrinter1.Print;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TMainForm.btnPreviewClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
GridPrintPreviewDialog1.Execute;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TMainForm.btnOpenFileClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
if OpenDialog1.FileName <> '' then
|
||||||
|
OpenDialog1.InitialDir := ExtractFileDir(OpenDialog1.FileName);
|
||||||
|
if OpenDialog1.Execute then
|
||||||
|
sWorkbookSource1.LoadFromSpreadsheetFile(OpenDialog1.FileName);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TMainForm.GridPrinter1GetColCount(Sender: TObject; AGrid: TCustomGrid;
|
||||||
|
var AColCount: Integer);
|
||||||
|
begin
|
||||||
|
if sWorksheetGrid1.Worksheet <> nil then
|
||||||
|
AColCount := sWorksheetGrid1.Worksheet.GetLastOccupiedColIndex + 1 + sWorksheetGrid1.HeaderCount;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TMainForm.GridPrinter1GetRowCount(Sender: TObject; AGrid: TCustomGrid;
|
||||||
|
var ARowCount: Integer);
|
||||||
|
begin
|
||||||
|
if sWorksheetGrid1.Worksheet <> nil then
|
||||||
|
ARowCount := sWorksheetGrid1.Worksheet.GetLastOccupiedRowIndex + 1 + sWorksheetGrid1.HeaderCount;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TMainForm.GridPrinter1PrintCell(Sender: TObject; AGrid: TCustomGrid;
|
||||||
|
ACanvas: TCanvas; ACol, ARow: Integer; ARect: TRect);
|
||||||
|
var
|
||||||
|
worksheet: TsWorksheet;
|
||||||
|
cell: PCell;
|
||||||
|
begin
|
||||||
|
worksheet := sWorksheetGrid1.Worksheet;
|
||||||
|
if worksheet <> nil then
|
||||||
|
begin
|
||||||
|
varCellPadding := FNewPadding;
|
||||||
|
TsWorksheetGridOpener(sWorksheetGrid1).DrawCell(ACol, ARow, ARect, []);
|
||||||
|
cell := worksheet.FindCell(sWorksheetGrid1.GetWorksheetRow(ARow), sWorksheetGrid1.GetWorksheetCol(ACol));
|
||||||
|
if worksheet.HasComment(cell) then
|
||||||
|
TsWorksheetGridOpener(sWorksheetGrid1).DrawCommentMarker(ARect);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
end.
|
||||||
|
|
BIN
components/gridprinter/examples/fpspreadsheet/test.xlsx
Normal file
BIN
components/gridprinter/examples/fpspreadsheet/test.xlsx
Normal file
Binary file not shown.
@ -12,6 +12,9 @@ type
|
|||||||
|
|
||||||
TGridPrnDialog = (gpdNone, gpdPageSetup, gpdPrintDialog, gpdPrinterSetup);
|
TGridPrnDialog = (gpdNone, gpdPageSetup, gpdPrintDialog, gpdPrinterSetup);
|
||||||
|
|
||||||
|
TGridPrnPrintCellEvent = procedure (Sender: TObject; AGrid: TCustomGrid;
|
||||||
|
ACanvas: TCanvas; ACol, ARow: Integer; ARect: TRect) of object;
|
||||||
|
|
||||||
TGridPrnGetCellTextEvent = procedure (Sender: TObject; AGrid: TCustomGrid;
|
TGridPrnGetCellTextEvent = procedure (Sender: TObject; AGrid: TCustomGrid;
|
||||||
ACol, ARow: Integer; var AText: String) of object;
|
ACol, ARow: Integer; var AText: String) of object;
|
||||||
|
|
||||||
@ -137,6 +140,7 @@ type
|
|||||||
FOnGetColCount: TGridPrnGetColCountEvent;
|
FOnGetColCount: TGridPrnGetColCountEvent;
|
||||||
FOnGetRowCount: TGridPrnGetRowCountEvent;
|
FOnGetRowCount: TGridPrnGetRowCountEvent;
|
||||||
FOnPrepareCanvas: TOnPrepareCanvasEvent;
|
FOnPrepareCanvas: TOnPrepareCanvasEvent;
|
||||||
|
FOnPrintCell: TGridPrnPrintCellEvent;
|
||||||
FOnUpdatePreview: TNotifyEvent;
|
FOnUpdatePreview: TNotifyEvent;
|
||||||
function GetBorderLineWidthHor: Integer;
|
function GetBorderLineWidthHor: Integer;
|
||||||
function GetBorderLineWidthVert: Integer;
|
function GetBorderLineWidthVert: Integer;
|
||||||
@ -239,6 +243,7 @@ type
|
|||||||
property PageRect: TRect read FPageRect;
|
property PageRect: TRect read FPageRect;
|
||||||
property PixelsPerInchX: Integer read FPixelsPerInchX;
|
property PixelsPerInchX: Integer read FPixelsPerInchX;
|
||||||
property PixelsPerInchY: Integer read FPixelsPerInchY;
|
property PixelsPerInchY: Integer read FPixelsPerInchY;
|
||||||
|
property Padding: Integer read FPadding;
|
||||||
property PageCount: Integer read GetPageCount;
|
property PageCount: Integer read GetPageCount;
|
||||||
property PageNumber: Integer read FPageNumber;
|
property PageNumber: Integer read FPageNumber;
|
||||||
property PrintScaleToNumHorPages: Integer read FPrintScaleToNumHorPages write FPrintScaleToNumHorPages;
|
property PrintScaleToNumHorPages: Integer read FPrintScaleToNumHorPages write FPrintScaleToNumHorPages;
|
||||||
@ -270,6 +275,7 @@ type
|
|||||||
property OnGetRowCount: TGridPrnGetRowCountEvent read FOnGetRowCount write FOnGetRowCount;
|
property OnGetRowCount: TGridPrnGetRowCountEvent read FOnGetRowCount write FOnGetRowCount;
|
||||||
property OnGetColCount: TGridPrnGetColCountEvent read FOnGetColCount write FOnGetColCount;
|
property OnGetColCount: TGridPrnGetColCountEvent read FOnGetColCount write FOnGetColCount;
|
||||||
property OnPrepareCanvas: TOnPrepareCanvasEvent read FOnPrepareCanvas write FOnPrepareCanvas;
|
property OnPrepareCanvas: TOnPrepareCanvasEvent read FOnPrepareCanvas write FOnPrepareCanvas;
|
||||||
|
property OnPrintCell: TGridPrnPrintCellEvent read FOnPrintCell write FOnPrintCell;
|
||||||
property OnUpdatePreview: TNotifyEvent read FOnUpdatePreview write FOnUpdatePreview;
|
property OnUpdatePreview: TNotifyEvent read FOnUpdatePreview write FOnUpdatePreview;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -712,10 +718,14 @@ end;
|
|||||||
procedure TGridPrinter.Execute(ACanvas: TCanvas);
|
procedure TGridPrinter.Execute(ACanvas: TCanvas);
|
||||||
begin
|
begin
|
||||||
FPrinting := true;
|
FPrinting := true;
|
||||||
|
if Assigned(FOnBeforePrint) then
|
||||||
|
FOnBeforePrint(Self);
|
||||||
case FPrintOrder of
|
case FPrintOrder of
|
||||||
poRowsFirst: PrintByRows(ACanvas);
|
poRowsFirst: PrintByRows(ACanvas);
|
||||||
poColsFirst: PrintByCols(ACanvas);
|
poColsFirst: PrintByCols(ACanvas);
|
||||||
end;
|
end;
|
||||||
|
if Assigned(FOnAfterPrint) then
|
||||||
|
FOnAfterPrint(Self);
|
||||||
FPrinting := false;
|
FPrinting := false;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -1105,9 +1115,6 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
if Assigned(FOnBeforePrint) then
|
|
||||||
FOnBeforePrint(Self);
|
|
||||||
|
|
||||||
FOutputDevice := odPrinter;
|
FOutputDevice := odPrinter;
|
||||||
Prepare;
|
Prepare;
|
||||||
Printer.BeginDoc;
|
Printer.BeginDoc;
|
||||||
@ -1116,9 +1123,6 @@ begin
|
|||||||
finally
|
finally
|
||||||
Printer.EndDoc;
|
Printer.EndDoc;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
if Assigned(FOnAfterPrint) then
|
|
||||||
FOnAfterPrint(Self);
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ Advances first along rows when handling page-breaks. }
|
{ Advances first along rows when handling page-breaks. }
|
||||||
@ -1222,6 +1226,12 @@ var
|
|||||||
lGrid: TGridAccess;
|
lGrid: TGridAccess;
|
||||||
checkedState: TCheckboxState;
|
checkedState: TCheckboxState;
|
||||||
begin
|
begin
|
||||||
|
if Assigned(FOnPrintCell) then
|
||||||
|
begin
|
||||||
|
FOnPrintCell(Self, FGrid, ACanvas, ACol, ARow, ARect);
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
|
|
||||||
lGrid := TGridAccess(FGrid);
|
lGrid := TGridAccess(FGrid);
|
||||||
|
|
||||||
PrepareCanvas(ACanvas, ACol, ARow);
|
PrepareCanvas(ACanvas, ACol, ARow);
|
||||||
|
Reference in New Issue
Block a user