一个应用软件有一个主窗体(Mainform)和若干个子窗体(form1,form2,form3....),每个子窗体为了设置Edit控件的ImeMode、ImeName属性值以控制是否打开汉字输入都要在该窗体的OnShow()中写上相同的几个语句很是麻烦,如对于Form1而言:
for i := 0 to Form1.ComponentCount - 1 do
if Form1.Components[i].ClassType = TEdit then
begin
if TEdit(Form1.Components[i]).ImeMode = imOpen then
TEdit(Form1.Components[i]).ImeName := '五笔字型'
else if TEdit(Form1.Components[i]).ImeMode = imAlpha then
TEdit(Form1.Components[i]).ImeName := '';
end;不知能否只在Mainform中写一个全局过程/函数,这样只要在每个子窗体的OnShow()中写一条语句调用它(把子窗体的名字作为传递参数)来初始化该子窗体中的所有Edit控件?我自己不会写,还望各位指教。谢谢!
解决方案 »
- imagelist1.Draw(form1.Canvas,10,20,0)的时候画出的图片很小,如何设置其显示为原始大小
- intraweb的ISAPI形式中的ACCESS数据库链接应该怎样写?可否给个例子?
- BeforePost与Post有什么区别?主要是在执行效率上?比如说,我的静态信息是写在BeforePost里好还是写在Post里更好?
- 问个QUERY的控件的问题
- 现有两表,结构如下,如果我想得到以下结果,我的sql应该怎么写?(100分)真心相求,不够可加!
- .DCU文件的反编译
- 有没有好的图象缩放的例子,或者好用的控件也可以.我做的老是图象失真.
- 100分求教:三层结构中的客户端怎样做事务处理?
- 再请教几个Delphi的问题:)急件!
- 3
- 这个sql语句为什么会错?
- 请问一下delphi中uses后的那些东西到底包含了什么?谢谢!
如楼主说所说,写个通用过程
procedure SetAllControlIme(AForm:TForm);
var
i:integer;
begin
for i := 0 to Aform.ComponentCount - 1 do
if Aform.Components[i].ClassType = TEdit then
begin
if TEdit(Aform.Components[i]).ImeMode = imOpen then
TEdit(Aform.Components[i]).ImeName := '五笔字型'
else if TEdit(Aform.Components[i]).ImeMode = imAlpha then
TEdit(Aform.Components[i]).ImeName := '';
end;
end;每个子窗体调用它
SetAllControlIme(self);方法二:
写个基类form,如TBaseForm
通用的过程在TBaseForm里写好,
每个子窗体继承这个TBaseForm