Postoji verovatno više načina da se to odradi, možeš dozvoliti korisniku da sam izabere language koji će koristiti. Učitaš, npr., u TListBox vrednosti(keyboard layouts) koje si postavio u ControlPanel-u:
Code:
...
procedure GetKLList(List: TStrings);
var
AList : array [0..9] of Hkl;
AklName: array [0..255] of Char;
i: Longint;
begin
List.Clear;
for i := 0 to GetKeyboardLayoutList(SizeOf(AList), AList) - 1 do
begin
GetLocaleInfo(LoWord(AList[i]), LOCALE_SLANGUAGE, AklName, SizeOf(AklName));
List.AddObject(AklName, Pointer(AList[i]));
end;
end;
...
Potom pri pokretanju aplikacije pozoveš proceduru:
Code:
GetKLList(ListBox1.Items);
Zatim, selektuješ vrednost iz TListBox -a(OnClick):
Code:
...
with Sender as TListBox do
ActivateKeyboardLayout(Hkl(Items.Objects[ItemIndex]), 0);
...
E, sad, osmisli kako ćeš upamtiti vrednost da korisnik ne bi morao svaki put po pokretanju programa podešavati keyboard layouts , hoćeš sa .ini fajlom ili slično.
Ima još jedna varijanta, za koju znam:
Code:
...
var
LangIdentifier: String;
begin
LangIdentifier := '0000081A'; //Serbian(Latin)
LoadKeyboardLayout(PChar(LangIdentifier), KLF_ACTIVATE);
end;
...
Nadam se da ćeš bar nešto moći iskoristiti!?!