الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

[ تمت الإجابة ]كيف يمكن منع المستخدم من كتابة الأحرف داخل التكست والسماح فقط بالأرقام والفاصلة العشرية

بدأه avr في 29 ديسمبر 2008 · 3 رد · 2,289 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بســم الله الـرحمــن الرحيــم

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

إخوتي الكرام كيف يمكنني منع المستخدم من كتابة الأحرف داخل التكست بوكس والسماح له فقط بكتابة الأرقام و الفاصلة العشرية ولكن ضمن شروط وهي :

1 * إذا قام بكتابة أرقام صحيحة داخل التكست بوكس لا يسمح له بكتابة أكثر من 5 أرقام .

2 * 'ذا قام بكتابة رقم يحتوي فاصلة عشرية إيضا لا يسمح له بكتابة أكثر من 5 أرقام وفاصلة عشرية واحدة لا غير .

3 * أن لا يسمح بكتابة الفاصلة العشرية في الخانة الأولى للعدد و الخانة الأخيرة للعدد أي يسمح بكتابة الفاصلة فقط في وسط العدد .

4 * إذا كان الرقم أقل من 5 خانات يجب إضافة أصفار على الجهة اليسرة للعدد حتى يكتمل عدد الأرقام للخمس خانات .

أعرف أنني أثقلت عليكم في هذه الأسئلة ولكن أنا بأمس الحاجة إلى الإجابة عليهم ليكتمل مشروعي و شكرا لكم مقدما .

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

تم تعديل هذه المشاركة بواسطة avr في 29 ديسمبر 2008 في 06:03

سبحان الله وبحمده .. سبحان الله العظيم

#2

بسم الله

هناك عدة نقاط في هذه الأسئلة، وبرأيي الطريقة الأمثل لما تريده، هو جعل خاصية Enabled للتيكست بوكس False ، وجعل خاصية KeyPreview للناقذة True ، ثم تستعمل الحدث KeyPress للنافذة، لكتابة الأرقام التي تريدها.

أما بالنسبة للفاصلة العشرية الواحدة، فيمكنك استخدام متغير من نوع Boolean ، وإسناد قيمة True له إذا كتبت الفاصلة، وقيمة False إذا أزيلت الفاصلة، فإذا أراد المستخدم كتابة فاصلة ثانية، يتم التحقق من قيمة المتغير، فإن كانت True فلا يكتب، وإن كانت False فإنه يكتبها، ثم يجعلها True . تمام ؟

بالنسبة لإضافة الأصفار، إذا كان عدد الأرقام أقل من خمسة، فيمكنك استعمال الكود التالي، ولكنه بدائي نوعاً ما:

Select Case Len(Text1.Text)
Case 1
   Text1.Text = "0000" + Text1.Text
Case 2
   Text1.Text = "000" + Text1.Text
Case 3
   Text1.Text = "00" + Text1.Text
Case 4
   Text1.Text = "0" + Text1.Text
End Select

بالنسبة لعدم إمكانية جعل الفاصلة آخر عدد، فالحاسوب لا فرق عنده، يعني 12.=12 أما بالنسبة لعدم إمكانية كتابتها كأول عدد، فيمكنك كتابة التالي:

If Len(Text1.Text) = 0 And KeyAscii = 46 Then KeyAscii = 0

يعني هذا كود مبدأي، يمكنك تطويره.

وبالنسبة لمسألة خمسة أرقام لا غير، فيمكنك استعمال خاصية MaxLength للتيكست بوكس بما يتناسب مع ما تريد.

أرجو أن أكون وفقت لمساعدتك.

وفقك الله.

هذه الجملة خاطئة  :wacko: 


#3
اقتباس
4 * إذا كان الرقم أقل من 5 خانات يجب إضافة أصفار على الجهة اليسرة للعدد حتى يكتمل عدد الأرقام للخمس خانات

Text1 = Format(Text1, "000000")

يمكنك ضبط خاصية Text بتحديد حجم المدخلات :

Text1.MaxLength = 5

ليس كل ما يتمناه المرء يدركه

arabteam2000.gif

#4

أشكر لكم تفاعلكم السريع جزاكم الله عني كل خير

ولقد قمت بتجربة ما ذكرتموه والحمد لله تم بنجاح شكرا لكم مجددا

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

سبحان الله وبحمده .. سبحان الله العظيم

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…