سلامي الى جميع الاعضاء
كيف يمكن جعل الناتج الحسابي في edit10.text or dbedit10.text يكون رقمبن فقط بعد
الفاصلة مثلا 0.00 - 10.75 الخ .. وفي اي حدث
كود :
edit10.text:= Format('%*.*f', [8, 2, (القيمة)]);
حيت القيمة عبارة عن رقم
متل
2.15688
يتم عرض النتيجة مقربة
كود :
Format('%*.*f', [8, 2, (
و الرقم 2 عدد الحانات بعد الفاصلة
تسلم الايادي وان شاء الله ما نفقدكم
كيف يمكن جعل edit1.text لايقبل اكثر من خانتين بعد الفاصلة بدون تقريب (roud)
مثلا 5.32 ولا يقبل 5.325 وفي اي حدث يتم ادخال الكود
تفضل جرب هدا
كود :
if Edit1.SelStart in [1 .. 5] then
if not(Key in ['0' .. '9', '.', #8]) then
begin
Key := #0;
Exit;
end;
if Pos('.', Edit1.Text) > 0 then
if (Length(Edit1.Text) - (Pos('.', Edit1.Text)) = 2) and (Key <> #8) then
Key := #0;
if Key = '.' then
if Pos('.', Edit1.Text) > 0 then
Key := #0
else if (Key = '.') and (Edit1.SelStart = 1) then
Edit1.Text := Edit1.Text + '0';
Edit1.SelStart := Length(Edit1.Text);
جربت الكود ولكن يطلب معرف الــ Key
Shaieb كتب :جربت الكود ولكن يطلب معرف الــ Key
ضع الكود السابق في الحدث on key press لل edit1 وستنتهي المشكلة ان شاء الله
بالتوفيق
اخي بارك الله فيك قمت بالتجربة صحيح ان edit10 لا يقبل الا رقمين بعد الفاصلة وهذا هو طلبي لكن هتاك مشكلة وهي عند ادخال رقم مثلا 2.45 تظهر 20.45 او 1.65 تظهر 10.65 حاولت التغيير في الكود ولم اصل الى حل اكيد عندك علاج لها وسامحني ربما اتعبتك معي .... اعيد واكرر شكري لك وازادك الله من فضله
اخي وجدت الحل يكمن في تغيير هذا الكود ;'0'+Edit1.Text := Edit1.Text الى ;' '+Edit1.Text := Edit1.Text; تم زالة الصفر '0' الحمد لله نجحت العملية والفضل لله وحده ثم اليك شكرا مرة اخرى
السلام عليكم
من الافضل ان تحدف التالي
كود :
else if (Key = '.') and (Edit1.SelStart = 1) then
Edit1.Text := Edit1.Text + '0';
Edit1.SelStart := Length(Edit1.Text);
لانه المسئول غن داللك
00.00
ربي معك
شكرا جدا جدا انا بصدد عمل منظومة سأحتاج الى مساعدتك عندما تواجهني مشكلة بارك الله فيك وفي امثالك