foreveryday007's BLOG

心有多大,宇宙就有多大。

zt:如何显示中文化的打印设置对话框?

如何显示中文化的打印设置对话框?

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

      把RpFormSetup.pas加入到对应的项目文件中,把对应窗体的名字从RPSetupForm更改为SCSetupForm;将文件RpFormSetup.pas另存为SCFormSetup.pas。

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

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

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

procedure TForm1.RvSystem1OverrideSetup(ReportSystem: TRvSystem;
  OverrideMode: TOverrideMode; var OverrideForm: TForm);
begin
    case
    OverrideMode of
    omCreate:
    begin
        OverrideForm := TSCSetupForm.Create(nil);
        //OverrideForm.Caption := RvSystem1.TitleSetup;
        (OverrideForm as TSCSetupForm).ReportSystem := ReportSystem;
    end;
    omShow:
    begin
        with OverrideForm as TSCSetupForm, ReportSystem do
        begin
          PreviewSetup := False;
          Aborted := ShowModal = mrCancel;
        end;
    end;
    omWait:
    begin
     {because showModal: no wait necessary!}
    end;
    omFree:
    begin
        OverrideForm.Free;
    end;
    end;
end;

       编译运行这个项目,其打印设置对话框就会变成中文的了!
       这种方式进行中文化不会受到RAVE版本升级的影响!

 

--------------------------------------------------------------------------------------

参考资料一

How to override the standard setupdialog

Category

Rave - General

Question

  • How can I change the setup-dialogbox in an other look or in an other language, for example german ?


 

Solution

  • In Rave 5 exist a standard setup-form. Many user , especially in "non"-english countries, would localize this dialog.

    Normally the Printsetup Form is displayed when executing the report to allow the user to select the report destination and other settings (copies, file format to use).

    Copy the rpFormSetup.pas- and rpFormSetup.dfm-file in the project folder and change the filenames and the unit-name inside the pas-file and the form-name. for example in dtFormSetup (dt is the abbreviation of "deutsch"- german).

    Sample Files:
rave_dtformsetiup.zip

Add dtFormSetup to the uses statement in the project. Make visual changes and localization to the form and save it.

Connect the RvSystem component with the RvProject component.
Select the RvSystem component and create the OverrideSetup event and enter the following code:

procedure TForm1.RvSystem1OverrideSetup(ReportSystem: TRvSystem; OverrideMode: TOverrideMode; var OverrideForm: TForm); begin case OverrideMode of omCreate: begin OverrideForm := TdtSetupForm.Create(nil); OverrideForm.Caption := RvSystem1.TitleSetup; (OverrideForm as TdtSetupForm).ReportSystem := ReportSystem; end; omShow: begin with OverrideForm as TdtSetupForm, ReportSystem do begin PreviewSetup := False; Aborted := ShowModal = mrCancel; end; end; omWait: begin {because showModal: no wait necessary!) end; omFree: begin OverrideForm.Free; end; end; end; 


Compile and run any of the reports, your special Setup Form should be displayed when you execute a rave-report.
-> this way doesn't override your setupform on a rave-update, too.
阅读更多
个人分类: 1> DELPHI
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭