德尔福快速报告 - 总页数

PDM*_*PDM 2 delphi quickreports

我在我的应用程序中使用QuickReports,并希望在页脚中有"Page x of x".最好的方法是什么?

Fre*_*ell 8

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;
Run Code Online (Sandbox Code Playgroud)

FTotalPages在Form2中声明,它包含TQuickRep组件.

public
    { Public declarations }
    FTotalPages: Integer;
Run Code Online (Sandbox Code Playgroud)

请注意,在准备之后和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;
Run Code Online (Sandbox Code Playgroud)