在2002年程序员杂志上看到一篇自定义预览窗口的文章,用的是重载的方法,目的是不要它自带的预览窗口,达到汉化目的,重载showmodal函数,但我不太懂,照着他的源码抄了一遍,编译通不过,不知道怎么回事。我用的是Delphi6,谁知道在Delphi6下怎么自定义预览窗口?

解决方案 »

  1.   

    汉化预览窗口例子很多。你看看这个源码就知道。
    http://www.playicq.com/dispdocnew.php?t=&id=2737
      

  2.   

    谢谢cbdiy和fancier的回答,我下载了几个控件,感觉界面和我做的界面不统一,而且也不太好用,有的不支持delphi6,我感觉如果用delphi自带的qrpreview控件实现自己所想的预览界面就再好不过了,你们有什么好建议吗?或者再提供一些支持delphi6的,用着比较不错的控件也可以。
      

  3.   

    其实不用那么麻烦的。只需要修改两个地方就可以了。
    第一个地方就是在BEFORTPRIEVIEW的时候创建你自己的FORM
    第二个地方就是在QUICKRPT的某个地方修改一些,具体的地方我忘记了。好像是一个判断BEFOREPRIVEV事件是否存在,如果存在则执行。原来的程序是执行完BEFOREPRIVEW,然后就执行ONPREVIEW。你可以修改成,如果BEFOREPRIVEW存在,则不执行ONPRIVIEW。就OK了
      

  4.   

    当然是用Qreport的qprevire控件就行了,自己做个界面很简单的.
      

  5.   

    第二点错误了
    应该是在单元qrprntr
    事件
    TQRPrinter.Preview;
    修改为以下内容
        if assigned(FOnPreviewEvent) then
        try
             FOnPreviewEvent(Self)
        finally
        end
        else
        with GlobalPreviewInterface.Create(nil) do
        try
          PreviewControl := Show(Self)
        finally
          Free;
        end;