dephi 程式輸入法中英文自動切換實現的原始碼 (轉)
現在將公佈出來,來謝謝大家的支援。本人水平有限,大家有什麼號的靈感或建議,請 e .多謝!!
原始碼實現的思路:
提供一個列舉所有輸入法的窗體,供選擇,將選擇的中文輸入法儲存到系統登錄檔裡。
提供一個方法 ChangeYouFormAllControlIme(form) ,fo是需要輸入的窗體名稱,列舉出相應窗體具有輸入法的。
提供一個方法 JugeClassType(PClass:Tcontrol),判斷每一個控制元件的實際型別,根據其ImeMode(為了設計簡便,當值 為imchinese 時,切換為使用者選擇的中文輸入法 ,其它切換為英文)
下面是主要原始碼:
//判斷控制元件型別切換中英文這個只能具體判斷,無法用 Twincontrol 籠統判別或概括
procedure JugeClassType(PClass:Tcontrol;
begin
if pclass is TEdit then
begin
if TEdit(pclass).ImeMode=imchinese then
TEdit(pclass).ImeName:=StrImeName (StrImeName 登錄檔儲存的中文輸入法名)同)
else
TEdit(pclass).ImeMode:=imClose;
exit;
end;
if pclass is TMemo then
begin
if TMemo(pclass).ImeMode=imchinese then
TMemo(pclass).ImeName:=StrImeName
else
TMemo(pclass).ImeMode:=imClose;
exit;
end;
if pclass is TComboBox then
begin
if TComboBox(pclass).ImeMode=imchinese then
TComboBox(pclass).ImeName:=StrImeName
else
TComboBox(pclass).ImeMode:=imClose;
exit;
end;
if pclass is TRichEdit then
begin
if TRichEdit(pclass).ImeMode=imchinese then
TRichEdit(pclass).ImeName:=StrImeName
else
TRichEdit(pclass).ImeMode:=imClose;
exit;
end;
if pclass is TGrid then
begin
if TDBGrid(pclass).ImeMode=imchinese then
TDBGrid(pclass).ImeName:=StrImeName
else
TDBGrid(pclass).ImeMode:=imClose;
exit;
end;
if pclass is TDBEdit then
begin
if TDBEdit(pclass).ImeMode=imchinese then
TDBEdit(pclass).ImeName:=StrImeName
else
TDBEdit(pclass).ImeMode:=imClose;
exit;
end;
if pclass is TDbMemo then
begin
if TDbMemo(pclass).ImeMode=imchinese then
TDbMemo(pclass).ImeName:=StrImeName
else
TDbMemo(pclass).ImeMode:=imClose;
exit;
end;
if pclass is TDbcombobox then
begin
if TDbcombobox(pclass).ImeMode=imchinese then
TDbcombobox(pclass).ImeName:=StrImeName
else
TDbcombobox(pclass).ImeMode:=imClose;
exit;
end;
if pclass is Tdblookupcombobox then
begin
if Tdblookupcombobox(pclass).ImeMode=imchinese then
Tdblookupcombobox(pclass).ImeName:=StrImeName
else
Tdblookupcombobox(pclass).ImeMode:=imClose;
exit;
end;
if pclass is Tdbrichedit then
begin
if Tdbrichedit(pclass).ImeMode=imchinese then
Tdbrichedit(pclass).ImeName:=StrImeName
else
Tdbrichedit(pclass).ImeMode:=imClose;
exit;
end;
if pclass is TMaskEdit then
begin
if TMaskEdit(pclass).ImeMode=imchinese then
TMaskEdit(pclass).ImeName:=StrImeName
else
TMaskEdit(pclass).ImeMode:=imClose;
exit;
end;
end;
//這個方法,您只需要在需要切換中英文的窗體 oncreate 事件裡就可以了。YFormName,需要切換中英文的窗體。
Procedure ChangeYouFormAllControlIme(YFormName:TWinControl);
var
i:integer;
ChildControl:TControl;
Reg:TRegistry;
YouFormOrOTher:Twincontrol;
begin
YouFormOrOTher:=YFormName;
reg:=TRegistry.Create;
reg.Key:=HKEY_LOCAL_MACHINE;
try
if Reg.OpenKey('SoftwareIMeCustom',false)=true then
StrImeName:=reg.ReadString('CustomIMeName');
finally
reg.CloseKey;
reg.Free;
end;
for i:=0 to YouFormOrOTher.ControlCount-1 do
begin
ChildControl:=YouFormOrOTher.Controls[i];
JugeClassType(ChildControl);
if ChildControl is TWinControl then ChangeYouFormAllControlIme(ChildControl as TWinControl);
end;
end;
end.
列舉輸入法,並將使用者的選擇儲存到登錄檔裡,很簡單,這個大家可以自己實現。例如
ListBox1.Items:=screen.Imes;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-989633/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- dephi 程式輸入法根據使用者的愛好自動切換的簡便解決辦法 (轉)
- win10怎麼實現用Ctrl鍵來切換中英文輸入法Win10
- VS Code - Vim 外掛自動切換輸入法
- win10自帶輸入法無法切換怎麼辦 win10自帶輸入法設定切換的方法Win10
- ssh自動輸入密碼指令碼 切換目錄指令碼密碼指令碼
- Input-Source-Pro:自動切換輸入法並提示狀態
- 切換輸入法神器:自動切換輸入法專業版 for Mac v2.1.3中文啟用版Mac
- win10系統下中英文輸入法無法切換如何解決Win10
- win10輸入法切換方法_win10輸入法怎麼切換Win10
- 平板藍芽鍵盤怎麼切換輸入法 ipad藍芽鍵盤切換中英文藍芽iPad
- macOS Sierra 下實現Caps Lock鍵切換輸入法Mac
- 自動切換輸入法專業版for macv2.0.6啟用版Mac
- w10輸入法切換怎麼設定_w10輸入法切換的方法
- 蘋果電腦切換輸入法蘋果
- iPhone快速切換表情輸入法iPhone
- win10修改輸入法切換方式 win10修改輸入法切換快捷鍵Win10
- 切換輸入法卡死怎麼辦_win10切換輸入法就卡死的解決方法Win10
- 自動切換輸入法專業版for mac v2.0.5啟用版Mac
- 搜狗輸入法切換到半形
- js實現的文字框輸入內容自動提示效果程式碼JS
- win10怎麼更改輸入法切換鍵_win10如何改輸入法切換快捷鍵Win10
- 自動安裝程式的實現演算法和原始碼 (轉)演算法原始碼
- SwitchKey 1.1.3最新版 (自動輸入法切換利器)支援M1晶片晶片
- Dledger是如何實現主從自動切換的
- win10在遊戲裡怎麼切換輸入法 win10玩遊戲切換輸入法如何操作Win10遊戲
- win10輸入法切換不了中文怎麼處理_win10輸入法無法切換中文如何修復Win10
- 直播app原始碼,登入時自動輸入密碼/自動記住密碼APP原始碼密碼
- win10輸入法切換快捷鍵修改步驟_win10怎麼改切換輸入法按鍵Win10
- win10輸入法切換不出來怎麼辦_win10輸入法切換不瞭解決教程Win10
- 中英文切換導航選單實現詳解
- mac新手教程:該怎麼切換輸入法Mac
- 切換輸入法預設語言為英文
- SwitchKey 1.1.3 (自動切換輸入法利器)支援m1
- windows10輸入法無法切換怎麼辦 win10筆記本輸入法切換不瞭解決方法WindowsWin10筆記
- 實現動態自動匹配輸入的內容
- win10 更新後不能切換輸入法怎麼辦 win10輸入法切換不了怎麼解決Win10
- win10在LOL裡怎麼切換輸入法 win10在LOL裡切換輸入法設定方法Win10
- 通過keepalived實現 MySQL VIP 自動切換MySql