就是在原system菜单上加一个language:English,Italy,French...的菜单,当点击english,界面就显示english,其他的相同,请问如何设计?
解决方案 »
- 有没有哪位用过DBISAM 这个数据库控件的?如何修改表的密码..?
- 水晶报表问题?
- 消息问题,请大家帮忙!
- 很简单的有关流的问题(但有点难),如何改进?(用流合并文件,有点像rar,但是如果合并的文件太大时,就很慢了)
- 如何制作输入法的安装程序?
- 关于dbgrid下拉滚动条的问题
- 请问在DELPHI中有没有将字符串转化为大写的函数!是不是UCASE不行
- 高手们,重金求解!!100个大洋!!!Treeview 变换节点控制窗体的创建\打开\关闭\释放??
- 悬赏高价RMB500做毕业设计,企业通讯web平台
- 在DELPHI中如何控制DOS命令语句的运行顺序?
- 大家帮忙看看这个,为什么多任务下载啊
- 动态设置组件的属性和调用其方法,请高手指教.
1.定义一个全系统的基类Form(如果有的话,就在你的基类form中写)
2.将需要读取的标题信息都防到ini中(每一种语言一种ini)
3.procedure TfBase.pdReadCaptions(Sender:TControl;Const aHeader:String);
var
lnComp,i:Integer;
Inifile:Tinifile;
begin
try
Inifile:=Tinifile.Create(g_StrFileName);
if Sender=Self then
begin
Caption:=Inifile.ReadString(aHeader,'Caption',Caption);
Font.Size:=s_nFontSize;
Font.Name:=s_StrFontName;
ParentFont:=True;
end; //
with TControl(Sender) do
for lnComp:=0 to ComponentCount-1 do
begin
if (Components[lnComp] is TCommonDialog) then
Continue; //Panel
if (Components[lnComp] is TPanel) then
begin
TPanel(Components[lnComp]).Caption:=Inifile.ReadString(aHeader,TPanel(Components[lnComp]).Name,'');
TPanel(Components[lnComp]).Font.Size:=s_nFontSize;
TPanel(Components[lnComp]).Font.Name:=s_StrFontName;
Continue;
end; //DbCheckBox
if (Components[lnComp] is TDbCheckBox) then
begin
TDbCheckBox(Components[lnComp]).Caption:=Inifile.ReadString(aHeader,TDbCheckBox(Components[lnComp]).Name,'');
TDbCheckBox(Components[lnComp]).Font.Size:=s_nFontSize;
TDbCheckBox(Components[lnComp]).Font.Name:=s_StrFontName;
Continue;
end; //Button
if (Components[lnComp] is TButton) then
begin
TButton(Components[lnComp]).Caption:=Inifile.ReadString(aHeader,TControl(Components[lnComp]).Name,'');
TButton(Components[lnComp]).Font.Size:=s_nFontSize;
TButton(Components[lnComp]).Font.Name:=s_StrFontName;
Continue;
end;
//CheckBox
if (Components[lnComp] is TCheckBox) then
begin
TCheckBox(Components[lnComp]).Caption:=Inifile.ReadString(aHeader,TControl(Components[lnComp]).Name,'');
TCheckBox(Components[lnComp]).Font.Size:=s_nFontSize;
TCheckBox(Components[lnComp]).Font.Name:=s_StrFontName;
Continue;
end;
//GroupBox
if (Components[lnComp] is TGroupBox) then
begin
TGroupBox(Components[lnComp]).Caption:=Inifile.ReadString(aHeader,TControl(Components[lnComp]).Name,'');
TGroupBox(Components[lnComp]).Font.Size:=s_nFontSize;
TGroupBox(Components[lnComp]).Font.Name:=s_StrFontName;
continue;
end;
//RadioButton
if (Components[lnComp] is TRadioGroup) then
begin
TRadioGroup(Components[lnComp]).Caption:=Inifile.ReadString(aHeader,TControl(Components[lnComp]).Name,'');
Continue;
end;
//SpeedButton
if (Components[lnComp] is TSpeedButton) then
begin
TSpeedButton(Components[lnComp]).Caption:=Inifile.ReadString(aHeader,TControl(Components[lnComp]).Name,'');
TSpeedButton(Components[lnComp]).Font.Size:=s_nFontSize;
TSpeedButton(Components[lnComp]).Font.Name:=s_StrFontName;
Continue;
end;
//StaticText
if (Components[lnComp] is TStaticText) then
begin
TStaticText(Components[lnComp]).Caption:=Inifile.ReadString(aHeader,TControl(Components[lnComp]).Name,'');
TStaticText(Components[lnComp]).Font.Size:=s_nFontSize;
TStaticText(Components[lnComp]).Font.Name:=s_StrFontName;
Continue;
end;
//LabeledEdit
if (Components[lnComp] is TLabeledEdit ) then
begin
TLabeledEdit(Components[lnComp]).EditLabel.Caption:=Inifile.ReadString(aHeader,TControl(Components[lnComp]).Name,'');
Continue;
end;
//MenuItem
if (Components[lnComp] is TMenuItem) then
begin
TMenuItem(Components[lnComp]).Caption:=Inifile.ReadString(aHeader,TControl(Components[lnComp]).Name,'');
Continue;
end;
//Label
if (Components[lnComp] is TLabel ) then
begin
TLabel(Components[lnComp]).Caption:=inifile.ReadString(aHeader,TControl(Components[lnComp]).Name,'');
TLabel(Components[lnComp]).Font.Size:=s_nFontSize;
TLabel(Components[lnComp]).Font.Name:=s_StrFontName;
Continue;
end;
//TabSheet
if (Components[lnComp] is TTabSheet) then
begin
TTabSheet(Components[lnComp]).Caption:=inifile.ReadString(aHeader,TControl(Components[lnComp]).Name,'');
TTabSheet(Components[lnComp]).Font.Size:=s_nFontSize;
TTabSheet(Components[lnComp]).Font.Name:=s_StrFontName;
Continue;
end;
//RadioButton
if (Components[lnComp] is TRadioButton) then
begin
TRadioButton(Components[lnComp]).Caption:=inifile.ReadString(aHeader,TControl(Components[lnComp]).Name,'');
TRadioButton(Components[lnComp]).Font.Size:=s_nFontSize;
TRadioButton(Components[lnComp]).Font.Name:=s_StrFontName;
Continue;
end; //Frame 框架里的东西
if (Components[lnComp]) is TFrame then
for i:=0 to TFrame(Components[lnComp]).ComponentCount-1 do
pdReadCaptions(TFrame(Components[lnComp]),Copy(TFrame(Components[lnComp]).ClassName,2,length(TFrame(Components[lnComp]).ClassName)));
//
end;
finally
Inifile.Free;
end;
end;
悄悄的问你个问题,全系统的基类应该怎么定义啊
这样的话,你可能没一个Form的申明部门都要改动
TYourForm=Class(TForm)====>>>> TYourForm=Class(TBaseForm)你给我一个邮箱,Ok
www.acroprise.com.tw
把元件放到主画面,不用修改你别的form的代码,就可以增加任意语言支持了。