System Delphi

Title: Switch Between Language in XP
Question: Can i Switch Between language in XP?
Answer:
Uses ...,Shellapi
.
.
.
function MakeKeyboardLayout(PrimaryLanguage, SubLanguage: Integer): String;
begin
Result := IntToHex(PrimaryLanguage or (SubLanguage shl 10),
KL_NAMELENGTH - 1);
end;
function FarsiKeyboardLayout: String;
begin
Result := MakeKeyboardLayout(LANG_FARSI,SUBLANG_DEFAULT);
end;
function EnglishKeyboardLayout: String;
begin
Result := MakeKeyboardLayout(LANG_ENGLISH, SUBLANG_DEFAULT);
end;
procedure TForm1.FarsiKeyboard(Sender: TObject);
begin
if LoadKeyboardLayout(PChar(FarsiKeyboardLayout),
KLF_ACTIVATE or KLF_REORDER) = 0 then
MessageDlg(ErrMsgFarsiKeyboard, mtError, [mbOK], 0);
end;
procedure TForm1.EnglishKeyboard(Sender: TObject);
begin
LoadKeyboardLayout(PChar(EnglishKeyboardLayout),
KLF_ACTIVATE or KLF_REORDER);
end;
procedure TForm1.NextKeyboardActionExecute(Sender: TObject);
begin
ActivateKeyboardLayout(HKL_NEXT, 0);//Switch Between Language
end;