تسجيل الدخول

مشاهدة النسخة كاملة : كيف يمكنني تغيير الفاصل العشري برمجيًا (دلفي7)


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

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

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

medreg
2009-09-02, 19:21
بعد ان وجدت الحل للمشكلة ظهر مالم يكون في الحسبان

Decimalseparator:=',';
thousandseparator:='.';
currencystring:='';

عندما يكون للحقل من نوع Numerique
عندما وضعت في الحدث OnCreate الثلاث سطور المبينة اعلاه في الحقيقة يعمل بشكل جيد لكن هناك امر لم يكن في الحسبان
وهو الزر الموجود في لوحة المفاتيح والذي يحمل إشارة الفاصلة والنقطة والحذف
عندما تكتب مبلغ او رقم وتريد ان تستخدمه لوضع الفاصلة لا يعمل وهذه المشكلة لاحظتها من قبل عندما تغير في الإعدادت الإقليمية وتضع الفاصلة في مكان النقطة لايعمل وهذ الأ في البرامج التي يتم تثبيتها من خلال المستعمل كهذه البرامج التي ننشأها بالدلفي
اما إذا كانت الإعدادات الإقليمية إفتراضية واقصد الفاصلة لللآف والنقطة للعشري فإن هذا الزر يعمل جيد عندما تستعمله للفاصل العشري ليضع نقطة للفاصل العشري ونفس الشيئ البرامج هذه ان كان افتراضي تستطيع ان تستعمله وان كان اختياري كالسالف الذكر لا تستطيع استعماله
أما إذا كان للحقل من نوع $
لم اجد اي زر يقبل ان تستعمله فاصة
حتى الزر الذي يحمل إشارة الفاصلة وإشارة علامة الإستفهام
علما ان لوحة المفاتيح في وضع FR
ولم يبقى أمامي غير الزر السالف الذكر الموجود يمين لوحة المفاتيح
هذا الزر يعمل لكن يعطيك رسالة خطأ وهي هذه الرسالة
http://img42.imageshack.us/img42/7766/errorb.gif
لذا إن كتان هناك حل لهذه المشكلة افيدونا به جزاكم الله عنا كل خير

medreg
2009-09-13, 21:35
تم حل المشلة والحمد لله
الكود الأول

procedure TForm2.DetailBand1BeforePrint(Sender: TQRCustomBand;
var PrintBand: Boolean);
begin
decimalseparator:=',';
thousandseparator:='.';
end;

الكود الثاني

procedure TForm2.DetailBand1َAfterPrint(Sender: TQRCustomBand;
var PrintBand: Boolean);
begin
decimalseparator:='.';
thousandseparator:=',';
end;

نبيلْ
2009-09-25, 12:55
مشكووووووووووووووووووووووووور
بارك الله فيك اخي العزيز

spado
2009-10-28, 15:17
مشكووووووووووووووووووووووووور
بارك الله فيك اخي العزيز

امير الجود
2009-12-16, 23:27
شكرا لك و بارك الله فيك على المجهود