Hello ISOAR
Yes, you can print custom text on print.
There are no special event on cell print but,
you can override class TPlannerControlPrintServiceEh
Try modify unit FrameOne from EhLib\Demos\PlannerEh.MainDemo\FrameOne.pas
Code:
uses
...PrintPlannersEh,
type
TfrFrameOne = class(TMyBaseFrame)
...
public
MyPlannerControlPrintService: TPlannerControlPrintServiceEh;
.....
end;
implementation
uses Unit1, Unit_ToolsDataModule;
{$R *.dfm}
type
TPlannerViewCrack = class(TCustomPlannerViewEh);
TMyPlannerControlPrintServiceEh = class(TPlannerControlPrintServiceEh)
protected
procedure PrintCellData(ACol, ARow: Integer; ARect: TRect); override;
end;
procedure TMyPlannerControlPrintServiceEh.PrintCellData(ACol, ARow: Integer; ARect: TRect);
var
CellType: TPlannerViewCellTypeEh;
ALocalCol, ALocalRow: Integer;
Grid: TPlannerViewCrack;
NewRect: TRect;
s: String;
begin
inherited PrintCellData(ACol, ARow, ARect);
Grid := TPlannerViewCrack(PlannerView);
Grid.GetCellType(ACol, ARow, CellType, ALocalCol, ALocalRow);
if (PlannerView is TPlannerVertDayslineViewEh) and
(CellType = pctDateCellEh)
then
begin
NewRect := ARect;
NewRect.Top := NewRect.Top + Round(20 * ScaleX);
NewRect.Left := NewRect.Left + Round(4 * ScaleY);
s := 'New Text';
Canvas.TextRect(NewRect, s, [tfWordBreak]);
end;
end;
....
constructor TfrFrameOne.Create(AOwner: TComponent);
begin
....
MyPlannerControlPrintService := TMyPlannerControlPrintServiceEh.Create(Self);
end;
....
procedure TfrFrameOne.Button1Click(Sender: TObject);
begin
MyPlannerControlPrintService.Planner := PlannerControlEh1;
MyPlannerControlPrintService.Preview;
end;