网站建设| 数据库类| 图形图象| 程序设计| 现代办公| 操作系统| 考试认证| 网络技术| 软件工程| 电脑相关| 文学作品
网站开发| 网页制作| 操作系统| 图象图形| 考试认证| 数据库类| 程序设计| 硬件技术| 现代办公| 网络技术| 笑话频道
 
您的位置: 电脑书库首页-> 电脑文摘-> 程序设计-> Delphi/Pascal-> 如何显示中文化的打印预览对话框

如何显示中文化的打印预览对话框
作者:佚名 来源:InterNet 加入时间:2004-11-23
相关文章 相关书籍:
如何显示中文化的打印预览对话框

      拷贝C:\Rave5\Source目录中的RpFormPreview.pas和RpFormPreview.dfm到对应的项
目目录中。

      把RpFormPreview.pas加入到对应的项目文件中,把对应窗体的名字从
RavePreviewForm更改为SCRavePreviewForm;将文件RpFormPreview.pas另存为
SCFormPreview.pas。

      把窗体SCRavePreviewForm中的对应文字从英文更改为中文。

      在主窗体上加上 RvProject和 RvSystem部件,通过设定RvProject.Engine为
RvSystem部件来把两者挂接。    

      设置RvSystem部件的OverridePreview事件过程为以下代码:

procedure TForm1.RvSystem1OverridePreview(ReportSystem: TRvSystem;
  OverrideMode: TOverrideMode; var OverrideForm: TForm);
begin
    Case OverrideMode Of
    omCreate:
    Begin
        OverrideForm := TSCRavePreviewForm.Create(self);
        //OverrideForm.Caption := ReportSystem.TitlePreview;
        OverrideForm.Width := ReportSystem.SystemPreview.FormWidth;
        OverrideForm.Height := ReportSystem.SystemPreview.FormHeight;
        OverrideForm.WindowState := ReportSystem.SystemPreview.FormState;
        (OverrideForm As TSCRavePreviewForm).ReportSystem := ReportSystem;
    End;
    omShow:
    Begin
        ReportSystem.SystemPreview.InitPreview((OverrideForm As 
TSCRavePreviewForm).RvRenderPreview);
        If Assigned(ReportSystem.OnPreviewSetup) Then
        Begin
          ReportSystem.OnPreviewSetup((OverrideForm As 
TSCRavePreviewForm).RvRenderPreview);
        End; { if }
        (OverrideForm As TSCRavePreviewForm).InputFileName := 
ReportSystem.SystemFiler.Filename;
        (OverrideForm As TSCRavePreviewForm).InputStream := 
ReportSystem.SystemFiler.Stream;
        (OverrideForm As TSCRavePreviewForm).InitFromRPSystem;
        (* *)
        If soPreviewModal In ReportSystem.SystemOptions Then
        Begin
            OverrideForm.ShowModal;
        End
        Else
        Begin
            OverrideForm.Show;
        End; { else }
    End;
    omWait:
    Begin
        If Not (soPreviewModal In ReportSystem.SystemOptions) Then
        Begin
            // Wait for close
            Repeat
                 Sleep(250);
                 Application.ProcessMessages;
            Until Not OverrideForm.Visible;
        End; { if }
    End;
    omFree:
    Begin
        If (ReportSystem.SystemFiler.StreamMode In [smTempFile, smFile]) Then
        Begin
            (OverrideForm As TSCRavePreviewForm).RvRenderPreview.NDRStream.Free;
            (OverrideForm As TSCRavePreviewForm).RvRenderPreview.NDRStream := 
Nil;
        End; { if }
        FreeAndNil(OverrideForm);
    End;
    End; { case }
end;

       编译运行这个项目,其打印预览窗口就会变成中文的了!
     备注:这种方式进行中文化不会受到RAVE版本升级的影响!
 

[文章录入员:fightter]

相关文章 相关书籍:
本站推荐内容

近期主机类热搜关键词:
美国服务器 美国服务器租用 海外服务器租用 国外服务器租用

Delphi/Pascal
C/C++/VC
C++Builder
Basic/VB类
Delphi/Pascal
Java编程
FORTRAN
其它
电脑教程阅读排行
·DELPHI下的多线程程序设计(...
·Delphi与Excel的亲密接...
·Delphi实现串口通信的常用的...
·Delphi中初始化.Ini文件...
·Delphi中用于读写(I/O)...
·谈谈Delphi中的类和对象
·Delphi编译错误中文手册
·Delphi中关于TApplic...
·OPENGL图形程序设计
·SQL的基本操作