if (length(RichEdit2.Text)>=Length(RIchEdit1.Text))and(RichEdit1.Text<>'') then
begin
RichEdit4.Enabled:=true;
RichEdit4.SetFocus;
RichEdit4.ImeName:=RichEdit2.ImeName;
//showmessage(Richedit4.ImeName);//问题就在这里,加上这一句,RichEdit4的输入法就和RichEdit2一样,不加上就得不到RichEdit2的输入法,郁闷啊。,对了,RichEdit2的输入法是从另一个窗体获得的RichEdit2.ImeName:=Form2.Combobox1.Text;//combobox1.Text列出了系统的中文输入法 RichEdit2.Enabled:=false;
start:=0;
if RichEdit3.Text='' then
begin
Form3:=TForm3.create(Application);
try
Form3.ShowModal;
Finally
Form3.Free;
end; end;
end;
begin
RichEdit4.Enabled:=true;
RichEdit4.SetFocus;
RichEdit4.ImeName:=RichEdit2.ImeName;
//showmessage(Richedit4.ImeName);//问题就在这里,加上这一句,RichEdit4的输入法就和RichEdit2一样,不加上就得不到RichEdit2的输入法,郁闷啊。,对了,RichEdit2的输入法是从另一个窗体获得的RichEdit2.ImeName:=Form2.Combobox1.Text;//combobox1.Text列出了系统的中文输入法 RichEdit2.Enabled:=false;
start:=0;
if RichEdit3.Text='' then
begin
Form3:=TForm3.create(Application);
try
Form3.ShowModal;
Finally
Form3.Free;
end; end;
end;
RichEdit4.SetFocus; // 调下来
-----------------------------------------------------------------------------------
原因应该是在设计的时候,输入法就没有设定和上一个Edit一致,所以切换到下一个Edit时输入法就变了;
有2种方法可以实现你的功能:1、重新打开设计界面,在设计界面上设定你需要的输入法;
2、就是统一管理,如果要求每个Edit的输入法是一致的,则设定一个全局变量就可以了,然后使用代码在
窗口创建或者显示的时候动态设置一下每个Edit的输入法。或者高级一点你可以搞个配置文件,给不同的
控件配置不同的输入法,每个窗口在创建的时候读取这个配置文件,动态设定输入;总之,肯定有办法解决这个问题的;如果想深入讨论可以加入QQ高级群:9642802,找管理员大海讨论。