关于输入法的保持!100分(100分)

  • 主题发起人 主题发起人 eehuang
  • 开始时间 开始时间
E

eehuang

Unregistered / Unconfirmed
GUEST, unregistred user!
hi!大家好!<br>我有个问题很头痛,比如:<br>在form0的button1click事件中调用 form1.showmodal;<br>之后,在form1中变换了别的输入法,这时把form1关闭,再调用form1.showmodal;这时<br>form1中刚才选的输入法不能保持.我该咋办呢?<br>我的程序有300多个form,不会要一个个的纪录吧??那我可惨了.<br>
 
你可以在程序设计初期控制输入控件的imemode ,imename属性
 
但是你怎么能预先知道用户将要使用的输入法名称呢?
 
这倒没想到,那可能就比较麻烦了,最好做一个数据库吧,每次在关闭之前修改一下<br>然后再读出来吧
 
在你的Showmodal Form 里面设置一个局部常数, 类型为TImeMode, OnClose事件中保存输入法,<br>再次ShowModal的时候通过OnShow事件设置成所保存的输入法, 具体见下面例子:<br><br>unit Unit2;<br><br>interface<br><br>uses<br>&nbsp; Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,<br>&nbsp; StdCtrls;<br><br>type<br>&nbsp; TForm2 = class(TForm)<br>&nbsp; &nbsp; Edit1: TEdit;<br>&nbsp; &nbsp; procedure FormClose(Sender: TObject; var Action: TCloseAction);<br>&nbsp; &nbsp; procedure FormShow(Sender: TObject);<br>&nbsp; private<br>&nbsp; &nbsp; { Private declarations }<br>&nbsp; public<br>&nbsp; &nbsp; { Public declarations }<br>&nbsp; end;<br><br>var<br>&nbsp; Form2: TForm2;<br><br>implementation<br><br>{$R *.DFM}<br><br>const<br>&nbsp; LastImeMode: TImeMode = imDontCare;<br><br>procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);<br>begin<br>&nbsp; LastImeMode := Edit1.ImeMode;<br>end;<br><br>procedure TForm2.FormShow(Sender: TObject);<br>begin<br>&nbsp; Edit1.ImeMode := LastImeMode;<br>end;<br><br>end.<br>
 
确实这个问题好像只能通过保存用户曾经使用的输入法来解决
 
谢谢大家了,我已经大概明白了,我再去试试吧!
 
后退
顶部