لدي مشكلة من فترة سالت عنها ولم اجد اجابة كافية
عند تحديد الخيار لدولة عربية من control panel->region->formats
الذي يحدث ان كل الارقام داخل التطبيق الخاص بي تكتب باللغة العربية وهذا يسبب لي اشكالية
ماهو الكود الذي من خلاله اجعل الارقام باللغة الانجليزية حتى لو كان الخيار من لوحة التحكم للغة العربية
السلام عليكم
شكل الأرقام ليس شرطا يكون متعلق باللغة
من لوحة التحكم ثم تنسيقات الوقت أو التاريخ أو الأرقام ثم إعدادات اضافية غير خيار :
استخدام الأرقام الأصلية إلى أبدا مثل الصورة التالية
كل من 1 user says قال شكرا ل صالح حمادي على المشاركة المفيدة1 user says Thank You to صالح حمادي for this post • محمد الدرة
21-01-2024, 07:44 AM (آخر تعديل لهذه المشاركة: 21-01-2024, 07:48 AM بواسطة محمد الدرة.)
(18-01-2024, 04:51 PM)Ndagor كتب : السلام عليكم
ان كنت تريد تغيير الارقام يكفي تغيير LOCALE_IDIGITSUBSTITUTION الي 0 او 1 و سوف يلغي استعمال الارقام المحلية
و لكن هذا سيقوم بتغيير اعدادات المستخدم .
لا ادري ان كانت وندوز تسمح بالغاء اعدادات المستخدم على برنامج محدد .
كود :
SetLocaleInfo(LOCALE_USER_DEFAULT, $1014,
'1');
الكود يشتغل تمام لكن يقوم بتعديل الاعدادات الخاصة بالمستخدم لجميع الانظمة
هل يوجد خيار لتفعيله على مستوى النظام الحالي فقط بحيث لايتم تاثيره على بقية الانظمة
(18-01-2024, 05:44 PM)صالح حمادي كتب : السلام عليكم
شكل الأرقام ليس شرطا يكون متعلق باللغة
من لوحة التحكم ثم تنسيقات الوقت أو التاريخ أو الأرقام ثم إعدادات اضافية غير خيار :
استخدام الأرقام الأصلية إلى أبدا مثل الصورة التالية
نعم هو هذا المطلوب لكني اريده برمجيا كما في رد الاخ Ndagor
الكود الذي اعطاني ينجز المهمة المطلوبة التي ذكرتها لكن يبقى اشكاليه انها تقوم بتغيير اعدادت النظام بالكامل وانا اريد تغييرها على المستخدم داخل التطبيق فقط وليس كاعداد خاص بالويندوز بالكامل او المستخدم
الحل الذي اراه هو تقوم باستخدام مكونات لا تستخدم ادوات الرسم الداخلية للوندوز
او استعمال font معدل لا يحتوي الارقام العربية الهندية و تحميله اثناء انطلاق البرنامج
السلام عليكم
يمكنك استخدام الحدث OnGetText التابع للـ Field فقط اذا كانت البيانات كبيرة سيحدث ثقل للبرنامج
[size=1][/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;
و لرب نازلة يضيق لها الفتى ذرعا و عند الله منها المخرج ضاقت فلما استحكمت حلقاتها فرجت و كنت اضنها لا تفرج