• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1233
  • Last Modified:

Change textbox language

Hi.
I would like to know if there is a way to change the language only inside a textbox.
For examble i would like to press a button and the user can insert french characters inside the current textbox.

I tried "ActivateKeyboardLayout", maybe i did something wrong, but it doesn work, is there any other way ?
0
CodedK
Asked:
CodedK
  • 5
  • 3
1 Solution
 
13_thCommented:
var russian, latin: HKL;

russian:=LoadKeyboardLayout('00000419', 0);
latin:=LoadKeyboardLayout('00000409', 0);

-- -- -- -- -- in programm--- --- ---

SetActiveKeyboardLayout(russian);
0
 
CodedKAuthor Commented:
Well, this doesnt work... The code goes like this..

procedure TForm5.Image1Click(Sender: TObject);
var Russian: HKL;
begin
Russian:=LoadKeyboardLayout('00000419', 0);
end;

(Compiler message : var Russian never used.)

Maybe that happens because i dont have russian language in my pc. How can i find the # list of the languages ?
0
 
CodedKAuthor Commented:
About  SetActiveKeyboardLayout(russian); ---->
Undeclared identifier... SetActiveKeyboardLayout. Is there something in the uses section ?
0
What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

 
13_thCommented:
it is necessary to declare global. not in procedure !

var Russian: HKL;
0
 
13_thCommented:
Ukrainian 00000422
Russian 00000419
English 00000409
German 00000407
Spanish 00000403
polish 00000415
Romainan 00000418
French 0000040C
0
 
13_thCommented:
//  greater number element array is reserved


TKBLayout = array [0..9] of HKL;
PKBLayout = ^TKBLayout;
...

n:= GetKeyboardLayoutList(10,KBLayoutList^);  // n - total number real spreading


// Number spreading possible to define so :

var
   i : integer;
   str : string;
SetLength(str,200);
for i:=0 to n-1 do begin
  ActivateKeyboardLayout(KBLayoutList^[i],0);
  GetKeyboardLayoutName(PChar(str));          
  showmessage(str);
end;

0
 
13_thCommented:
change
SetActivateKeyboardLayout to ActivateKeyboardLayout, sorry :)

uses windows;
0
 
CodedKAuthor Commented:
Thank you 13th for your quick response. It works fine now.  Though i cant understand your previous code ... i guess it shows a list of the codes. I am new here and in delphi too. I tried to make it work but i make something wrong i think. If you want clear it a little for me please.

I found this codes in a page and i will place it here for anyone having the same question.

Layout Codes
Arabic 00000401
Baltic 00000425
Central European 00000405
Greek 00000408
Hebrew 0000040D
Russian 00000419
Russian transliterated 00040419
Ukrainian 00000422
Ukrainian transliterated 00020422
US 00000409
US Dvorak 00010409
Turkish 0000041F
Western 00020409
0

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

  • 5
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now