diff --git a/components/gridprinter/source/gridprn.pas b/components/gridprinter/source/gridprn.pas index 27e639bcb..7aa5bef4f 100644 --- a/components/gridprinter/source/gridprn.pas +++ b/components/gridprinter/source/gridprn.pas @@ -220,7 +220,8 @@ type procedure DoLinePrinted(ARow, ALastCol: Integer); virtual; procedure DoNewPage(AStartCol, AStartRow, AEndCol, AEndRow: Integer); virtual; procedure DoPrepareCanvas(ACol, ARow: Integer); virtual; - procedure DoPrintCell(ACanvas: TCanvas; ACol, ARow: Integer; ARect: TRect); virtual; + procedure DoPrintCell(ACanvas: TCanvas; ACol, ARow: Integer; ARect: TRect; + var Done: boolean); virtual; procedure DoUpdatePreview; virtual; procedure Execute(ACanvas: TCanvas); function GetBrushColor(AColor: TColor): TColor; @@ -752,13 +753,14 @@ begin end; procedure TGridPrinter.DoPrintCell(ACanvas: TCanvas; ACol, ARow: Integer; - ARect: TRect); + ARect: TRect; var Done: Boolean); begin if Assigned(FOnPrintCell) then begin FOnPrintCell(Self, FGrid, ACanvas, ACol, ARow, ARect); - exit; - end; + Done := true; + end else + Done := false; end; procedure TGridPrinter.DoUpdatePreview; @@ -1295,8 +1297,11 @@ var col: TGridColumn; lGrid: TGridAccess; checkedState: TCheckboxState; + done: Boolean; begin - DoPrintCell(ACanvas, ACol, ARow, ARect); + DoPrintCell(ACanvas, ACol, ARow, ARect, done); + if done then + exit; lGrid := TGridAccess(FGrid);