Home > Back-end >  Edit1. ImeName:="input method", this method in win10, how to solve?
Edit1. ImeName:="input method", this method in win10, how to solve?

Time:11-17

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
  • Related