delphi4arab منتديات دلفي للعرب
تغيير اللغة الافتراضية - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : تغيير اللغة الافتراضية (/showthread.php?tid=12489)



تغيير اللغة الافتراضية - محمد الدرة - 17-01-2024

السلام عليكم ورحمة الله

لدي مشكلة من فترة سالت عنها ولم اجد اجابة كافية 
عند تحديد  الخيار لدولة عربية من    control panel->region->formats
الذي يحدث ان كل الارقام داخل التطبيق الخاص بي تكتب باللغة العربية وهذا يسبب لي اشكالية 
ماهو الكود الذي من خلاله اجعل الارقام باللغة الانجليزية حتى لو كان الخيار من لوحة التحكم للغة العربية


RE: تغيير اللغة الافتراضية - Ndagor - 18-01-2024

السلام عليكم

ان كنت تريد تغيير الارقام يكفي تغيير LOCALE_IDIGITSUBSTITUTION الي 0 او 1 و سوف يلغي استعمال الارقام المحلية
و لكن هذا سيقوم بتغيير اعدادات المستخدم .

لا ادري ان كانت وندوز تسمح بالغاء اعدادات المستخدم على برنامج محدد .

كود :
  SetLocaleInfo(LOCALE_USER_DEFAULT, $1014,                 '1');



RE: تغيير اللغة الافتراضية - صالح حمادي - 18-01-2024

السلام عليكم
شكل الأرقام ليس شرطا يكون متعلق باللغة
من لوحة التحكم ثم تنسيقات الوقت أو التاريخ أو الأرقام ثم إعدادات اضافية غير خيار :
استخدام الأرقام الأصلية إلى أبدا مثل الصورة التالية
[صورة: attachment.php?aid=4812]


RE: تغيير اللغة الافتراضية - محمد الدرة - 21-01-2024

(18-01-2024, 04:51 PM)Ndagor كتب : السلام عليكم

ان كنت تريد تغيير الارقام يكفي تغيير LOCALE_IDIGITSUBSTITUTION الي 0 او 1 و سوف يلغي استعمال الارقام المحلية
و لكن هذا سيقوم بتغيير اعدادات المستخدم .

لا ادري ان كانت وندوز تسمح بالغاء  اعدادات المستخدم على برنامج محدد .

كود :
   SetLocaleInfo(LOCALE_USER_DEFAULT, $1014,                  '1');

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

(18-01-2024, 05:44 PM)صالح حمادي كتب : السلام عليكم
شكل الأرقام ليس شرطا يكون متعلق باللغة
من لوحة التحكم ثم تنسيقات الوقت أو التاريخ أو الأرقام ثم إعدادات اضافية غير خيار :
استخدام الأرقام الأصلية إلى أبدا مثل الصورة التالية
[صورة: attachment.php?aid=4812]

نعم هو هذا المطلوب لكني اريده برمجيا كما في رد الاخ Ndagor 
الكود الذي اعطاني ينجز المهمة المطلوبة التي ذكرتها لكن يبقى اشكاليه انها تقوم بتغيير اعدادت النظام بالكامل وانا اريد تغييرها على المستخدم داخل التطبيق فقط وليس كاعداد خاص بالويندوز بالكامل او المستخدم


RE: تغيير اللغة الافتراضية - Ndagor - 21-01-2024

الحل الذي اراه هو تقوم باستخدام مكونات لا تستخدم ادوات الرسم الداخلية للوندوز
او استعمال font معدل لا يحتوي الارقام العربية الهندية و تحميله اثناء انطلاق البرنامج


RE: تغيير اللغة الافتراضية - S.FATEH - 21-01-2024

السلام عليكم
يمكنك استخدام الحدث OnGetText التابع للـ Field فقط اذا كانت البيانات كبيرة سيحدث ثقل للبرنامج

[size=1][صورة: L0AfTRn.png][/size]

كود :
function TForm2.ArrToEn(ArrChar: string): string; begin   if ArrChar =  '١' then Result := '1' else   if ArrChar = '٢' then Result := '2' else   if ArrChar = '٣' then Result := '3' else   if ArrChar = '٤' then Result := '4' else   if ArrChar = '٥' then Result := '5' else   if ArrChar = '٦' then Result := '6' else   if ArrChar = '٧' then Result := '7' else   if ArrChar = '٨' then Result := '8' else   if ArrChar = '٩' then Result := '9'; end; procedure TForm2.FDQuery1ARRGetText(Sender: TField; var Text: string;   DisplayText: Boolean); begin   Text := ArrToEn(FDQuery1.FieldByName('Arr').AsWideString); end;