利用INI文件实现界面无闪烁多语言切换

利用INI文件实现界面无闪烁多语言切换,第1张

利用INI文件实现界面无闪烁多语言切换,第2张

越来越多的程序使用多语言切换。虽然Delphi自带了多语言包的添加和配置,但是
那种方法使得切换语言时界面闪烁,实现起来很麻烦。在这里,我向您介绍使用INI文件读取语言字符的界面。
用这种方法,不仅简单易行,而且切换时也不会闪烁。
让我们从一个例子开始,看看如何切换语言。首先,建立一个新项目。放置以下组件:(如图所示)

main menu 1:TMainMenu;
file 1:TMenuItem;
exit 1:TMenuItem;
label 1:t label;
button 1:t button;
check box 1:t check box;
check box 2:t check box;
button 2:t button;
label 2:t label;
combobox 1:TComboBox;
label 3:t label;
因为要读取Ini文件,所以在USES中添加声明IniFiles
然后将Button1和Button2的ShowHint属性设置为True
其中我们使用ComboBox1来显示可用的语言并选择语言。
我们编辑以下中文GB。程序目录下的Ini文件:
;////////////////////////////////////////////////////////

;翻译的一些规则:
;翻译前,将复制的中文GB.ini重命名为your language . ini
;仅翻译符号“=”后的文本

[翻译]

标签1。caption = text 1
label 2 . caption = text 2
label 3 . caption = language
button 1。按钮2。hint = button 1_ hint
Button2。Hint = button 2_ hint
复选框1。Caption =复选框1
复选框2。Caption =复选框2
文件1。caption = file
exit 1
[Messages]

M1 =信息盒测试

;/////////////////////////例如:Label1。标题=标签1

当程序运行时,我们搜索所有的语言配置文件(*。ini)放在当前目录中。
为了实现这个目标,
我编写了以下函数来搜索目录中所有语言配置文件的文件名,
然后删除文件名的ini扩展名并保存回来:
函数t form 1 . search language pack:tstrings。
var
result strings:TStrings;
dos error:integer;
search rec:TsearchRec;
begin
result strings:= TStringList。创建;
dos error:= FindFirst(ExtractFilePath(ParamStr(0))+' *。ini ',faAnyFile,search rec);
while dos error = 0do
begin
{返回的文件名以。末尾的ini字符已删除}
result strings . add(changefileext(search rec . name,' '));
dos error:= FindNext(search rec);
end;
FindClose(search rec);
Result:= Result string;
end;

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 利用INI文件实现界面无闪烁多语言切换

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情