delphi4arab منتديات دلفي للعرب

نسخة كاملة : لتحويل الكتابة من لغة إلى أخرى في دلفي.
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2

delphi4ever

السلام عليكم ورحمة الله تعالى وبركاته.Smile

هذا مثال بسيط حول تحويل الكتابة في لوحة المفاتيح (KeyBorad) بواسطة دلفي:Wink

لتحويل الكتابة إلى اللغة العربية: AR

كود :
LoadKeyboardLayout('00000401',klf_activate);

لتحويل الكتابة إلى اللغة الإنجليزية: EN

كود :
LoadKeyboardLayout('00000409',klf_activate);

لتحويل الكتابة إلى اللغة الروسية: RU

كود :
LoadKeyboardLayout('00000419',klf_activate);

مـــــوفقين إن شاء الله.
السلام عليكم
من الامثلة السابقة يتضح ان لكل لغة كود اي
العربية ---------00000401
الانكليزية ---------00000409

ممكن بعض الاكزاد للغات أخري كالفرنسية مثلا
صحيح اخي ان الموضوع قديم شوي
الى ان النفع منه كثير

لكن من اين آتي بأرقام اللغات ؟

يعني مثلا الكيبورد السويدي...
كيف اعرف رقمه وكوده ؟

الله يكرمكم
moh__ كتب :لكن من اين آتي بأرقام اللغات ؟

يعني مثلا الكيبورد السويدي...
كيف اعرف رقمه وكوده ؟

الله يكرمكم


من هذا الرابط:
كود :
http://msdn.microsoft.com/en-us/goglobal/bb964664.aspx
bsm12 كتب :السلام عليكم
من الامثلة السابقة يتضح ان لكل لغة كود اي
العربية ---------00000401
الانكليزية ---------00000409

ممكن بعض الاكزاد للغات أخري كالفرنسية مثلا


الفرنسية 00000409
ان اردت اكواد جميع الغات راجع الموقع الذي وضعه الاخ
لتحديد لغة إقليمية معينة من خلال ثوابت معرفة في Windows.pas يمكن استخدام الـ Macro الذي يعيد الرمز التعريفي للغة:
كود :
#define [color=DarkSlateBlue]MAKELANGID[/color](p, s) ((((WORD) (s)) << 10) | (WORD) (p))
المصدر:
كود :
http://msdn.microsoft.com/en-us/library/bb202928.aspx
في دلفي:
كود :
function [color=DarkSlateBlue]MAKELANGID[/color](usPrimaryLanguage, usSubLanguage: LANGID): WORD; begin Result := ([color=DarkGreen]usSubLanguage [/color]shl 10) + [color=Blue]usPrimaryLanguage[/color]; end;
usPrimaryLanguage: تأخذ اللغة المستخدمة نستخدم: LANG_ARABIC/LANG_ENGLISH
usSubLanguage: تأخذ إقليم اللغة: SUBLANG_ARABIC_SYRIA/SUBLANG_ARABIC_EGYPT
لتسهيل الاستخدام نعيد كتابته في تابع يعيد string عوضا عن Word
ونستخدم TSpeedButton كزر للتغيير لأنه لا يغير موضع المؤشر (Cursor Focus). المثال:
PHP كود :
function GetLangID(usPrimaryLanguage, usSubLanguage: LANGID): string;
begin
  Result 
:= IntToHex((usSubLanguage shl 10) + usPrimaryLanguage, 8);
end;

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
  LoadKeyboardLayout
(pchar(GetLangID(LANG_ARABIC, SUBLANG_ARABIC_SAUDI_ARABIA)), KLF_ACTIVATE);
end; 
بقية الثوابت معرفة في Windows.pas.
[صورة: picture0002a.jpg]

[صورة: picture0001zo.jpg]

[صورة: picture0003h.jpg]
كود :
Language identifier Language Sublanguage - locale 00000436 Afrikaans South Africa 0000041c Albanian Albania 00001401 Arabic Algeria 00003c01 Arabic Bahrain 00000c01 Arabic Egypt 00000801 Arabic Iraq 00002c01 Arabic Jordan 00003401 Arabic Kuwait 00003001 Arabic Lebanon 00001001 Arabic Libya 00001801 Arabic Morocco 00002001 Arabic Oman 00004001 Arabic Qatar 00000401 Arabic Saudi Arabia 00002801 Arabic Syria 00001c01 Arabic Tunisia 00003801 Arabic UAE 00002401 Arabic Yemen 0000042b Armenian Armenia 0000082c Azeri Azerbaijan (Cyrillic) 0000042c Azeri Azerbaijan (Latin) 0000042d Basque Spain 00000423 Belarusian Belarus 00000402 Bulgarian Bulgaria 00000403 Catalan Spain 00000c04 Chinese Hong Kong SAR 00001404 Chinese Macao SAR 00000804 Chinese PRC 00001004 Chinese Singapore 00000404 Chinese Taiwan 0000041a Croatian Croatia 00000405 Czech Czech Republic 00000406 Danish Denmark 00000465 Divehi Maldives 00000813 Dutch Belgium 00000413 Dutch Netherlands 00000c09 English Australia 00002809 English Belize 00001009 English Canada 00002409 English Caribbean 00001809 English Ireland 00002009 English Jamaica 00001409 English New Zealand 00003409 English Philippines 00001c09 English South Africa 00002c09 English Trinidad 00000809 English United Kingdom 00000409 English United States 00003009 English Zimbabwe 00000425 Estonian Estonia 00000438 Faroese Faroe Islands 00000429 Farsi Iran 0000040b Finnish Finland 0000080c French Belgium 00000c0c French Canada 0000040c French France 0000140c French Luxembourg 0000180c French Monaco 0000100c French Switzerland 0000042f FYRO Macedonia FYRO Macedonia 00000456 Galician Spain 00000437 Georgian Georgia 00000c07 German Austria 00000407 German Germany 00001407 German Liechtenstein 00001007 German Luxembourg 00000807 German Switzerland 00000408 Greek Greece 00000447 Gujarati India 0000040d Hebrew Israel 00000439 Hindi India 0000040e Hungarian Hungary 0000040f Icelandic Iceland 00000421 Indonesian Indonesia (Bahasa) 00000410 Italian Italy 00000810 Italian Switzerland 00000411 Japanese Japan 0000044b Kannada India (Kannada script) 0000043f Kazakh Kazakstan 00000457 Konkani India 00000412 Korean Korea 00000440 Kyrgyz Kyrgyzstan 00000426 Latvian Latvia 00000427 Lithuanian Lithuania 0000083e Malay Brunei Darussalam 0000043e Malay Malaysia 0000044e Marathi India 00000450 Mongolian (Cyrillic) Mongolia 00000414 Norwegian Norway (Bokmål) 00000814 Norwegian Norway (Nynorsk) 00000415 Polish Poland 00000416 Portuguese Brazil 00000816 Portuguese Portugal 00000446 Punjabi India (Gurmukhi script) 00000418 Romanian Romania 00000419 Russian Russia 0000044f Sanskrit India 00000c1a Serbian Serbia (Cyrillic) 0000081a Serbian Serbia (Latin) 0000041b Slovak Slovakia 00000424 Slovenian Slovenia 00002c0a Spanish Argentina 0000400a Spanish Bolivia 0000340a Spanish Chile 0000240a Spanish Colombia 0000140a Spanish Costa Rica 00001c0a Spanish Dominican Republic 0000300a Spanish Ecuador 0000440a Spanish El Salvador 0000100a Spanish Guatemala 0000480a Spanish Honduras 0000080a Spanish Mexico 00004c0a Spanish Nicaragua 0000180a Spanish Panama 00003c0a Spanish Paraguay 0000280a Spanish Peru 0000500a Spanish Puerto Rico 0000040a Spanish Spain (Traditional sort) 00000c0a Spanish Spain (International sort) 0000380a Spanish Uruguay 0000200a Spanish Venezuela 00000441 Swahili Kenya 0000081d Swedish Finland 0000041d Swedish Sweden 0000045a Syriac Syria 00000449 Tamil India 00000444 Tatar Tatarstan 0000044a Telugu India (Telugu script) 0000041e Thai Thailand 0000041f Turkish Turkey 00000422 Ukrainian Ukraine 00000420 Urdu Pakistan 00000843 Uzbek Uzbekistan (Cyrillic) 00000443 Uzbek Uzbekistan (Latin) 0000042a Vietnamese Viet Nam
السلام عليكم
لقدوضعت هذا الكود فتحولت اللغة إلى الإنجليزية وأنا أود تحويلها إلى العربية الجزائرية

LOADKEYBOARdlayout('00001401',klf_activate);

هل من مساعد؟
جرب
كود :
Application.BiDiKeyboard:='00000401'; LoadKeyboardLayout('00000401',KLF_ACTIVATE);
اعتقد انك يجب ان تضيف العربية الجزائرية للجهاز
الصفحات : 1 2