In Win10 operating system, developed by Delphi 2007 system, cannot see the input method, how to deal with?
Edit1. ImeName:="input method", this method in win10, how to solve?
CodePudding user response:
Can consider to upgrade to at least the Delphi XE version
CodePudding user response:
reference 1st floor BlueStorm response: can consider to upgrade to at least the Delphi XE version Not input method, and should be the name of the input method, such as: Edit1. ImeName:="Chinese - QQ wubi input method"; CodePudding user response:
With so many old version, CodePudding user response:
With Delphi 10.2 win10 tried it on, set the input method doesn't work, the conclusion is that upgrade Delphi also cannot solve the problem, CodePudding user response:
Why don't input method allows users to choose their own, and should use the code specified? CodePudding user response:
I automatically open a input method of operation, under the Windows 7 is normal, no action under win10, Procedure TForm1.Com boBox70DropDown (Sender: TObject); Var I: Integer; The begin ComboBox70. The Clear; For I:=0 to Screen. Imes. Do the Count - 1 The begin ComboBox70. Items. The Add (Screen. Imes. Strings [I]); end; end; CodePudding user response:
I use Delphi 10.2 in win10 tried it on and set the input method works, CodePudding user response:
refer to 7th floor lyhoo163 response: I use Delphi 10.2 in win10 tried it on, set the input method works, Excuse me is how to set up? Directly on the design input item selection imename item, or a code sets? In the properties directly I choose imename no problem, not a code (win10) CodePudding user response:
For I:=0 to do ComponentCount - 1 SetVclIme (Components [I], ImeNameS, 1);//write your own input method function The main content of the following code Var VclClass: TComponent StrImeName: the string//system agreed in the input method name characters TEdit (VclClass). ImeMode:=imOpen;//open the TEdit (VclClass). ImeName:=StrImeName; TEdit (VclClass). ImeMode:=ImChinese;//the Chinese input method TEdit (VclClass). ImeName:=StrImeName; TEdit (VclClass). ImeMode:=imClose;//close TEdit (VclClass). ImeName:='; TEdit (VclClass). ImeMode:=imSAlpha;//English TEdit (VclClass). ImeName:=StrImeName; CodePudding user response:
You this is open in the control input method, I need in the global open input method, the original screen. Imes properties under win10 seems to fail, not list and name, count=0, no problem, under Windows 7 The reason for this is a full screen and screen the task bar, cannot choose, alone with only one input method option, in addition to other content in the control input, CodePudding user response:
The input method if no window cursor win10 will not activate CodePudding user response:
Special remind: Windows 7 and XP input method support IMM way, Input from Vista, the input method is introduced into the CTF way, Win10 operating system supports the IMM and at the same time the CTF way, Screen. Imes can only read the IMM method of input method, install the input method, the high version is the CTF way, CodePudding user response:
{ Microsoft Windows text services framework (TSF) Input method correlation function Author: HAB } The unit uTSFUtil; Interface USES the System. The SysUtils, System. Classes; Type TTSFUtil=class Private The class procedure DoImes (var AInputMethods: TStrings; Const AName: string="); Public The class function GetImes: TStrings;//get input list The class procedure SetImeName (const AName: string);//set the system the current input method end; Implementation USES the Winapi. MsCTF; Var MImeList: TStrings; Type TLanguageProfile=class Private FName: string; FProfile: TF_LANGUAGEPROFILE; Public The property Name: string read FName write FName; The property Profile: TF_LANGUAGEPROFILE read FProfile write FProfile; end; {TTSFUtil} The class procedure TTSFUtil. DoImes (var AInputMethods: TStrings; Const AName: string); Var Profiles: PPTfInputProcessorProfiles; Iprofiles: ITfInputProcessorProfiles; Plangid: Word; Enumerator: IEnumTfLanguageProfiles; LangProfile: TF_LANGUAGEPROFILE; FetchedItems: Cardinal; PbstrProfile: WideString; PfEnable: Integer; OLanPro: TLanguageProfile; The begin If not IsMSCTFAvailable then Exit; New (profiles); Try If TF_CreateInputProcessorProfiles (profiles)=S_OK then The begin Iprofiles:=ITfInputProcessorProfiles profiles (^); Iprofiles. GetCurrentLanguage (plangid); If plangid & gt; 0 then The begin Iprofiles. EnumLanguageProfiles (plangid, enumerator); If enumerator & lt;> Nil then The begin Enumerator. Next (1, langProfile, FetchedItems); While FetchedItems & gt; 0 do The begin Cable//langProfile fActive;//- 1 for the currently active input method PbstrProfile:='; If Iprofiles. GetLanguageProfileDescription (langProfile. Clsids, langProfile. Langid, langProfile guidProfile, pbstrProfile)=S_OK then The begin If Iprofiles. IsEnabledLanguageProfile (langProfile. Clsids, langProfile. Langid, langProfile guidProfile, pfEnable)=S_OK then The begin If pfEnable=1 then The begin //show the TSF input method name OLanPro:=TLanguageProfile. Create; OLanPro. Name:=pbstrProfile; OLanPro. Profile:=langProfile; AInputMethods. AddObject (pbstrProfile oLanPro); nullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnull