QuickRep1.Preview;
运行时出现的预览窗口是delphi的,标志还在顶上
有没有方法可以去掉这个标志??
听说可以自己做预览窗体,怎么做哪,各位高手,麻烦指点!!

解决方案 »

  1.   

    重载预览窗口,我有代码全部给你。
    unit printpreview;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, ExtCtrls, SUIForm, ComCtrls, ToolWin, SUIToolBar, QRPrntr,
      ImgList, QuickRpt;type
      TfrmPrintPreview = class(TForm)
        frmMain: TsuiForm;
        QRPreview: TQRPreview;
        suiToolBar1: TsuiToolBar;
        btnZoomToFit: TToolButton;
        ImageList: TImageList;
        btnZoom100: TToolButton;
        btnZoomToWidth: TToolButton;
        btnFirst: TToolButton;
        btnNext: TToolButton;
        btnPrior: TToolButton;
        btnLast: TToolButton;
        btnPrintSetup: TToolButton;
        btnPrint: TToolButton;
        btnSave: TToolButton;
        btnOpen: TToolButton;
        btnClose: TToolButton;
        ToolButton3: TToolButton;
        ToolButton1: TToolButton;
        ToolButton2: TToolButton;
        ToolButton4: TToolButton;
        ToolButton5: TToolButton;
        OpenDialog: TOpenDialog;
        SaveDialog: TSaveDialog;
        StatusBar: TStatusBar;
        procedure btnZoomToFitClick(Sender: TObject);
        procedure btnZoom100Click(Sender: TObject);
        procedure btnZoomToWidthClick(Sender: TObject);
        procedure btnFirstClick(Sender: TObject);
        procedure btnPriorClick(Sender: TObject);
        procedure btnNextClick(Sender: TObject);
        procedure btnLastClick(Sender: TObject);
        procedure btnPrintSetupClick(Sender: TObject);
        procedure btnPrintClick(Sender: TObject);
        procedure btnSaveClick(Sender: TObject);
        procedure btnOpenClick(Sender: TObject);
        procedure btnCloseClick(Sender: TObject);
        procedure QRPreviewPageAvailable(Sender: TObject; PageNum: Integer);
        procedure FormClose(Sender: TObject; var Action: TCloseAction);
      private
        { Private declarations }
        FPageCount : integer;
        procedure UpdatePanelShow;
      public
        { Public declarations }
        CurRep : TQuickRep;
      end;//var
     // frmPrintPreview: TfrmPrintPreview;implementation{$R *.dfm}procedure TfrmPrintPreview.btnZoomToFitClick(Sender: TObject);
    begin
      QRPreview.ZoomToFit;
    end;procedure TfrmPrintPreview.btnZoom100Click(Sender: TObject);
    begin
      QRPreview.Zoom:=100;
    end;procedure TfrmPrintPreview.btnZoomToWidthClick(Sender: TObject);
    begin
      QRPreview.ZoomToWidth;
    end;procedure TfrmPrintPreview.btnFirstClick(Sender: TObject);
    begin
      QRPreview.PageNumber := 1;
      UpdatePanelShow;
    end;procedure TfrmPrintPreview.btnPriorClick(Sender: TObject);
    begin
      QRPreview.PageNumber := QRPreview.PageNumber-1;
      if QRPreview.PageNumber =0 then
         QRPreview.PageNumber:=1;
      UpdatePanelShow;
    end;procedure TfrmPrintPreview.btnNextClick(Sender: TObject);
    begin
      QRPreview.PageNumber := QRPreview.PageNumber+1;
      UpdatePanelShow;
    end;procedure TfrmPrintPreview.btnLastClick(Sender: TObject);
    begin
      QRPreview.PageNumber := FPageCount;
      UpdatePanelShow;
    end;procedure TfrmPrintPreview.btnPrintSetupClick(Sender: TObject);
    begin
      QRPreview.QRPrinter.PrintSetup;
    end;procedure TfrmPrintPreview.btnPrintClick(Sender: TObject);
    begin
      QRPreview.QRPrinter.Print;
    end;procedure TfrmPrintPreview.btnSaveClick(Sender: TObject);
    begin
      if SaveDialog.Execute then
      begin
       if (SaveDialog.FIlterIndex <>1)and(CurRep = nil)then Exit;
       QRPreview.QRPrinter.Save(SaveDialog.FileName);
      end;
    end;procedure TfrmPrintPreview.btnOpenClick(Sender: TObject);
    begin
      if OpenDialog.Execute then
        QRPreview.QRPrinter.Load(OpenDialog.FileName);
    end;procedure TfrmPrintPreview.btnCloseClick(Sender: TObject);
    begin
      Close;
    end;procedure TfrmPrintPreview.UpdatePanelShow;
    begin
      StatusBar.Panels.Items[0].Text:='总 '+inttostr(FPageCount)+' 页';
      StatusBar.Panels.Items[1].Text:=' 第 '+inttostr(QRPreview.PageNumber)+ ' 页';
    end;procedure TfrmPrintPreview.QRPreviewPageAvailable(Sender: TObject;
      PageNum: Integer);
    begin
      FPageCount := PageNum ;
         UpdatePanelShow;
    end;procedure TfrmPrintPreview.FormClose(Sender: TObject;
      var Action: TCloseAction);
    begin
      CurRep := nil;
      Action := caFree;
    end;
    end.
    另外在你的qreport的onpreview中加上procedure TfrmJtda.QRep1Preview(Sender: TObject);
    begin
      with TfrmPrintPreview.Create(Application) do
      begin
       QRep1.Prepare;
         QRep1.PreviewModeless;
          QRPreview.QRPrinter := QRep1.QRPrinter ;
          CurRep := QRep1;
          ShowModal;
      end;
    end;
      

  2.   

    楼上的兄弟,我的代码和你差不多,但是为什么预览时为空白,打印可以打出内容?
    我跟了一下,Showmodal后没有Pagecount。
      

  3.   

    pagecount要在rep.prepare 后才有值
      

  4.   

    不好意思,再问一下,我的预览现在不是出不来,而是显示两次了:(
    在:
    procedure TfrmJtda.QRep1Preview(Sender: TObject);
    begin
      with TfrmPrintPreview.Create(Application) do
      begin
       QRep1.Prepare;
         QRep1.PreviewModeless;
          QRPreview.QRPrinter := QRep1.QRPrinter ;
          CurRep := QRep1;
          ShowModal;
      end;
    end;
    调试中,运行至QRep1.PreviewModeless;时就跳至with TfrmPrintPreview.Create(Application) do,重新生成了一遍。