لتحويل الكتابة من لغة إلى أخرى في دلفي.
#6
لتحديد لغة إقليمية معينة من خلال ثوابت معرفة في 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.
الرد


الردود في هذا الموضوع
لتحويل الكتابة من لغة إلى أخرى في دلفي. - بواسطة delphi4ever - 08-02-2008, 12:06 AM
لتحويل الكتابة من لغة إلى أخرى في دلفي. - بواسطة kachwahed - 14-08-2010, 03:14 PM

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم