Delphi設(shè)計可中/英文切換的界面技巧

字號:

在一些軟件中,我們經(jīng)常會看到界面語言切換功能,不過程序需要的這些各國語言信息都封裝在DLL中,有的也存儲在INI文件中,下面我就向大家介紹一個小技巧,在Delphi中不需要任何DLL文件和INI文件,就可以實現(xiàn)此功能。
    首先新建一工程,然后在窗體FORM1中加入一些控件,在這里我假設(shè)加入了如下控件:三個TBUTTON按鈕,兩個TCHECKBOX,一個TGROUPBOX和一個菜單。
    然后把他們的CAPTION屬性改為中文信息,再將對應(yīng)的英文信息放在這些控件的HINT屬性中,信息如下:
    procedure TForm1.FormCreate(Sender : Tobject);
    begin
    //初始化,顯示中文界面
    Button1.Enabled := False;
    Button2.Enabled :=True
    end;
    procedure TForm1.ChangeState(Mode : Byte); //改變按鈕狀態(tài)
    begin
    if Mode = 1 then //如果是顯示中文,則Button1失效,Button2有效
    begin
     Button1.Enabled := False;
     Button2.Enabled := True;
    End
    Else
    Begin
     Button1.Enabled := True;
     Button2.Enabled := False;
    End;
    end;
    procedure TForm1.Button1Click(Sender: TObject);
    var i:Integer;
    CS : String;
    Begin
    ChangeState(Tbutton(Sender).Tag);
    for i:=0 to ComponentCount-1 do
    begin
     //將窗體中的菜單項的中/英文進(jìn)行切換
     if Components[i] is TMenuItem then
    begin
     CS := TMenuItem(Components[i]).Hint ;
     TMenuItem(Components[i]).Hint:=
    TMenuItem(Components[i]).Caption ;
     TMenuItem(Components[i]).Caption := CS ;
     end;
    //將窗體中的按鈕的中/英文進(jìn)行切換
    if Components[i] is TButton then
     begin
    CS := TButton(Components[i]).Hint ;
    TButton(Components[i]).Hint :=
    TButton(Components[i]).Caption ;
    TButton(Components[i]).Caption := CS ;
    end;
    //將窗體中的復(fù)選框的中/英文進(jìn)行切換
    if Components[i] is TCheckBox then
     begin
    CS:=TCheckBox(Components[i]).Hint ;
    TCheckBox(Components[i]).Hint:=
    TCheckBox(Components[i]).Caption ;
    TCheckBox(Components[i]).Caption := CS ;
    end;
    //將窗體中的組合框的中/英文進(jìn)行切換
    if Components[i] is TGroupBox then
     begin
    CS:=TGroupBox(Components[i]).Hint ;
    TGroupBox(Components[i]).Hint:=
    TGroupBox(Components[i]).Caption ;
    TGroupBox(Components[i]).
    Caption := CS ;
    end;
    end;
    end;
    最后再將Button2的ONCLICK事件指向Button1的ONCLICK事件,按F9,運行一下,看看效果,切換的速度也非???,有興趣的朋友可以試試。(本程序在DELPHI6+WIN2000環(huán)境下調(diào)試通過)