PDA

View Full Version : keyboard language



(امید)
سه شنبه 26 خرداد 1383, 20:42 عصر
سلام

با چه دستوری می تونیم نوع زبان سیستم رو بگیریم(fa,Ar,En,...)

ممنون

vcldeveloper
چهارشنبه 27 خرداد 1383, 01:33 صبح
Application.BiDiKeyboard


کد زبان کیبورد رو بر مبگردونه مثل 00000429 برای زبان فارسی
لبته با تغییر مقدار این خصوصیت هم می تونید زبان کیبورد رو تغییر بدید

(امید)
چهارشنبه 27 خرداد 1383, 08:03 صبح
خدمتتون عرض کنم این کد زبانی که برنامه موقع ران شدن با اون فعال می شه بر می گردونه.
اگه موقع ران شدن برنامه با
[/code]Application.BiDiKeyboard ='00000401';[code]
ران بشه و از این کد بخواهیم زبان کی برد را بگیریم همیشه کد 000000401 رو داریم و اگه شما با کی برد صفحه کلید رو انگلیسی کنید کد 000000409 رو بر نمی گردونه .

پسر خاک
چهارشنبه 27 خرداد 1383, 09:21 صبح
سلام



procedure SetKeyboardLayout(const aLayout: String);overload;
procedure SetKeyboardLayout(const primary LangID, subLangID: Word);overload;
. . .
implementation
. . .
procedure SetKeyboardLayout(const primary LangID, subLangID: Word);
var
Layout: array[0.. KL_NAMELENGTH] of char;
d: word;
s: string;
begin
d:= (subLangID shl 10) or primaryLangID or (Longint(0) shl 16);
s:= IntToHex(d,8);
//Вызов функции Windows API для смены языка
LoadKeyboardLayout(StrCopy(Layout,PChar (s)),KLF_ACTIVATE);
end;

procedure SetKeyboardLayout(const aLayout: String);
var
primaryLangID, subLangID: Word;
begin
if UpperCase(aLayout)='RU' then
primaryLangID := LANG_RUSSIAN
else if UpperCase(aLayout)='GE' then
primaryLangID := LANG_GERMAN
else
primaryLangID := LANG_ENGLISH;
SetKeyboardLayout(primaryLangID, SUBLANG_ DEFAULT);
end;






procedure TfrmPayment.dbedtFioEnter(Sen-der: TObject);
begin
SetKeyboardLayout(LANG_RUSSIAN, SUBLANG_DEFAULT);
end;





procedure TfrmPayment.dbedtFioEnter (Sender: TObject);
begin
SetKeyboardLayout('RU');
end;




LANG_BELARUSIAN;
• LANG_ENGLISH;
• LANG_FRENCH;
• LANG_GERMAN;
• LANG_POLISH;
• LANG_RUSSIAN;
• LANG_UKRAINIAN.