我在我的应用程序中使用 QuickReports,并希望在页脚中包含“Page x of x”。执行此操作的最佳方法是什么?
最佳答案
procedure TForm1.Button1Click(Sender: TObject);
begin
Form2.QuickRep1.Prepare;
Form2.QuickRep1.FTotalPages := Form2.QuickRep1.QRPRinter.PageCount;
Form2.QuickRep1.QRPrinter.Free;
Form2.QuickRep1.QuickRep1.QRPrinter := nil;
Form2.QuickRep1.PreviewModal; // or .Print
end;
FTotalPages 在包含 TQuickRep 组件的 Form2 中声明。
public
{ Public declarations }
FTotalPages: Integer;
请注意,必须在 Prepare 之后和 PreviewModal(或 .Print)之前释放 QRPrinter 对象,否则会发生内存泄漏。
在 Form2 中,在 Quickreport1 上放置一个 QRLabel,并实现它的 onPrint 事件处理程序
procedure TForm2.QRLabel1Print(sender: TObject; var Value: string);
begin
Value := 'Page: ' + IntToStr(QuickRep1.QRPrinter.PageNumber) + ' of ' + IntToStr(FTotalPages);
end;
关于Delphi 快速报告 - 总页数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3616898/