delphi4arab منتديات دلفي للعرب

نسخة كاملة : حل مشكلة is not a valid floating point value
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
بسم الله الرحمن الرحيم

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


[صورة: attachment.php?attachmentid=4203&stc=1&d=1386951635]


في الحقيقة عانيت من هذه المشكلة كثيرا في قواعد البيانات ، حيث المشكلة تكمن في أن تغيير الإعدادات الإقليمية لتتناسب مع برنامجك خاصة الفاصلة و طبعا ان كنت تبرمج برنامج تجاري فهذا الأمر مرهق و متعب ، لذا و يعد تقليب النت Big Grin وجدت هذا الكود الذي يقوم بتغيير الفاصلة حيث أنك تجدها في بعض الأحيان " , " و في بعض الأحيان "." و من خلال الكود تقوم أنت بجعلها كما تحب فإما " , " و إما "." كما يفضلها الكثيرون Big GrinBig Grin

كود :
procedure TForm1.FormCreate(Sender: TObject); var Locale : LongInt; begin Locale := GetUserDefaultLCID(); SetLocaleInfo(Locale, LOCALE_SThousand, ''''); SetLocaleInfo(Locale, LOCALE_SDecimal, '.'); SendMessage(HWND_BROADCAST,WM_WININICHANGE,0,0); end; end.
حيث أننا في الـ OnCreate الخاصة بالنافذة الرئيسية للبرنامج نقوم بجعل الفاصلة الإفتراضية في الويندوز "." .


و لا تنسونا من صالح دعائكم.
السلام عليكم وبعد
فعلا هذا الكود مهم وسف يكون حلا مثاليا لمختلف البرامج لاسيما منها التجارية بارك الله فيك وأنت مشكور شكرا جزيلا
و عليكم السلام و رحمة الله و بركاته حياك الله حبيبنا، و بورك فيك أنت أيضا
السلام عليكم
إقتباس :نقوم بجعل الفاصلة الإفتراضية في الويندوز "." .
لم أجرب الكود , لكن إن كان هذا يؤثر على عمل الفاصلة على النظام ككل فأنا أعتقد بأنه ليس حلا مثلاليا
يمكن التحقق من المفتاح المدخل في حدث OnKeyPress إن وجد النفتاح المدخل هو النقطة فيجعل المفتاح مساويا لـ #0 ويستبدله بـ ascii الفاصلة ,
كود :
procedure TForm3.Edit1KeyPress(Sender: TObject; var Key: Char); begin if key=#46 then key:=#0;key:=#44; end;
و عليكم السلام و رحمة الله تعالى و بركاته
شكرا جزيلا أخي وبارك الله فيك و جعله في ميزان حسناتك
يمكن أن نختصر الكود الذي وضعته في الكود التالي:
If DecimalSeparator = ',' Then DecimalSeparator := '.' ;
بالتوفيق
مبرمج مبتدأ كتب :حيث أننا في الـ OnCreate الخاصة بالنافذة الرئيسية للبرنامج نقوم بجعل الفاصلة الإفتراضية في الويندوز "." .

و عليكم السلام و رحمة الله و بركاته
و لماذا التغيير في خصائص النظام إذا كنت تريد من برنامجك أن يتأقلم على كل نظام يشتغل عليه ؟
أنظر إلى هذه الفكرة علها تفيدك :
كود :
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin if (key=#46) or (key=#44) then key:= DecimalSeparator; end;

و الله الموفق لما فيه الخير
يمكنك أيضا أن تعالج الكود السابق على حسب ذوقك. مثلا أن تتأكد أنه لن يتم إدخال الفاصلة إلا مرة واحدة في الـ Edit و كذلك تجبر الـ Edit على تقبل الأرقام فقط دون الحروف. كل ذلك باستخدام الفكرة التي أريتكها في قطعة الكود السابقة.
بوركتم أحبابي على إثراء هذا الموضوع، و جعل الله جهدكم في ميزان حسناتكم
وفيك بارك الله. Rolleyes