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=1152)



كيف يمكنني تغيير الفاصل العشري برمجيًا - medreg - 29-08-2009

السلام عليكم ورحمة الله تعالى وبركاته
كيف يمكنني تيير الفاصل العشري للمبالغ
المبلغ يظهر على هذا الشكل 999,999,999.99
كيف يظهر بهذا الشكل : 999.999.999,99
برمجيًا من دون اللجوء الى التغيير في الإعدادات الإقليمية للويندوز
ظهور النتيجة في DBGrid و QuickRepot
وجزاكم الله عنا كل خير


كيف يمكنني تغيير الفاصل العشري برمجيًا - medreg - 29-08-2009

وأخيرًا حلت المشكلة والحمد لله وجزاكم الله عنا كل خير
PHP كود :
procedure TForm2.FormCreate(Sender: TObject);
begin
decimalseparator
:=',';
thousandseparator:='.';
end; 



كيف يمكنني تغيير الفاصل العشري برمجيًا - kachwahed - 02-09-2009

طالع هذا الموضوع يمكن يفيدك أكثر:
http://www.delphi4arab.net/forum/showthread.php?tid=992
بالتوفيق.



كيف يمكنني تغيير الفاصل العشري برمجيًا - medreg - 02-09-2009

شكرً جزيلاً على الرابط لكن هنا مشكل لم يكن في الحسبان
PHP كود :
Decimalseparator:=',';
thousandseparator:='.';
currencystring:=''; 
عندما يكون للحقل من نوع Numerique
عندما وضعت في الحدث OnCreate الثلاث سطور المبينة اعلاه في الحقيقة يعمل بشكل جيد لكن هناك امر لم يكن في الحسبان
وهو الزر الموجود في لوحة المفاتيح والذي يحمل إشارة الفاصلة والنقطة والحذف
عندما تكتب مبلغ او رقم وتريد ان تستخدمه لوضع الفاصلة لا يعمل وهذه المشكلة لاحظتها من قبل عندما تغير في الإعدادت الإقليمية وتضع الفاصلة في مكان النقطة لايعمل وهذ الأ في البرامج التي يتم تثبيتها من خلال المستعمل كهذه البرامج التي ننشأها بالدلفي
اما إذا كانت الإعدادات الإقليمية إفتراضية واقصد الفاصلة لللآف والنقطة للعشري فإن هذا الزر يعمل جيد عندما تستعمله للفاصل العشري ليضع نقطة للفاصل العشري ونفس الشيئ البرامج هذه ان كان افتراضي تستطيع ان تستعمله وان كان اختياري كالسالف الذكر لا تستطيع استعماله
أما إذا كان للحقل من نوع $
لم اجد اي زر يقبل ان تستعمله فاصة
حتى الزر الذي يحمل إشارة الفاصلة وإشارة علامة الإستفهام
علما ان لوحة المفاتيح في وضع FR
ولم يبقى أمامي غير الزر السالف الذكر الموجود يمين لوحة المفاتيح
هذا الزر يعمل لكن يعطيك رسالة خطأ وهي هذه الرسالة
[صورة: errorb.gif]
نرجوا إن كان هناك حل لهذه المشكلة افيدونا به وجزاكم الله عنا كل خير


كيف يمكنني تغيير الفاصل العشري برمجيًا - kachwahed - 03-09-2009

يبدو أن الأمور لم تتضح جيدا...
رمز فاصلة الأعداد في النظام محدد مسبقا
مثلا لو حددت الفاصلة في النظام هي الرمز ,
وكتبت رقم 1.2 فستشاهد حتما مثل هذا الخطأ
لكن إذا كتبت قبل ذلك:
كود :
DecimalSeparator := '.';
وهذا معناه أن رمز فاصلة الأعداد في برنامج (بعد تحديده) يختلف عنه في النظام
وبالتالي فلن يحدث الخطأ.
يبقى شيء وهو إذا أردت أن تحافظ على رمز فاصلة النظام (يعني تستعمل نفس رمز النظام)
يمكن تغيره يدويا في الحدث OnKeyPress بشيء مثل:
كود :
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin if Key = '.' then Key := ','; end;
وبالتالي إذا ضغط المستعمل على . فسيشاهد , عوضا عنها
وهكذا لن تحتاج إلى تغير DecimalSeparator .
ملاحظة: المتغير DecimalSeparator يمكن قراءته وفحصه كما يمكن تغيره أيضا.
راجع سؤال أخونا نبيل أيضا للاستزادة:
http://www.delphi4arab.net/forum/showthread.php?tid=1770
بالتوفيق.