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

السماح بكتابة أرقام فقط في مربع النص

مغلق
بدأه mometo في 7 مايو 2007 · 14 رد · 1,497 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

أثناء تجولي في المنتدى وجدت هذا الكود

Private Sub Txt_KeyPress(KeyAscii As Integer)
If KeyAscii < Asc("0") Or KeyAscii > Asc("9") Then
KeyAscii = 0
End If
End Sub

ولكن ماذا لو لأردت التعديل .... ماذا عن مفتاح Back Space ومفتاح Delete وكذلك العلامة العشرية

الكود السابق يسمح فقط بالأرقام 0 إلي 9 ويمنع كافة الأزرار الأخرى

أريد تمكين أستخدام زر Delete وزر Back Space للتعديل و كذلك تمكين زر العلامة العشرية

للسماح للمستخدم بإدخال أرقام تحتوي علي كسور عشرية مثلا 10.45

معلش أخوكم مبتدأ

وشكرا

#2

لو كنت كملت البحث كنت لقيت :

Select Case KeyAscii
	Case Is < 32			   ' Control keys are OK.
	Case 48 To 57			  ' This is a digit.
	Case Else				  ' Reject any other key.
		KeyAscii = 0
End Select

طبعا بحدث الـ KeyPress

#3

وممكن ده كمان

If IsNumeric(Text1.Text) = False Then
Text1.Text = ""
Exit Sub
End If

في حدث التغيير بتاع text1.text

Mohamed Ali Salim

0.1..0...4....7.....6......2.......7........4.........8

#4

وكده المستخدم يدوخ بسبب غلطة ؟

#5
اقتباس
وممكن ده كمان

كود

If IsNumeric(Text1.Text) = False Then

Text1.Text = ""

Exit Sub

End If

في حدث التغيير بتاع text1.text

تصحيح للكود السابق

بما انك لا تريده ان يكتب الا ارقام

If Not IsNumerric ( Text1) then
exit sub
End if

موقع البرنامج

مبارك لشعب تونس photo-thumb-42837.png

#6
حريف برمجة كتب:
If Not IsNumerric ( Text1) then
 exit sub
 End if

لن تعمل B) !

ياعم أفتح الـ VB وجرب , كنت حتى هتكتب IsNumeric مش ...................... :lol: .

حدث الـ Change يرفع بعد التغيير و الله أعلم و Exit Sub لن تلغى الحرف المدخل.

#7

الكود بتاعي صحيح

وانت ناقص الشرط اللي اسمه = False

وكلام الأخ msayed2004 صح لأن اذا تحقق الشرط انت قلتله انه يتوقف يعني مايمسحش حاجة

بس التعديل اللي ممكن يكون على الكود اللي انا وضعته هو ان التيكست ما يتمسحش كله

لا

يتمسح اخر حرف بس

حد فاهم

بس انا مش عارف اعملها

ياريت حد يكتب الكود بتاع مسح اخر حرف بس

وشكرا

Mohamed Ali Salim

0.1..0...4....7.....6......2.......7........4.........8

#8

طب و أفرض أنه دخل الحرف بمنتصف الرقم ؟

يعنى عمل كده 2222ب2222

الموضوع بسيط جدا :

Select Case KeyAscii
	Case Is < 32			   ' Control keys are OK.
	Case 48 To 57			  ' This is a digit.
	Case Else				  ' Reject any other key.
		KeyAscii = 0
End Select

وده مش كودى , ده من كتاب.

#9

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

ياجاماعه الموضوع مش محتاج علماء ولا كتب

انسب كود ما قام بوضعه الاخ محمد

حيث ان حدث الـ KeyPress يجعل الوسيط KeyAscii الخاص بغير الارقام = 0 .

فا هذا اضمن واسهل طريقه ,,,

بالتوفيق ,,,

A7med_prof

اقتباس

آسف الدخول متقطع هذه القتره

اقتباس

[يمين]

.[/يمين]

A7med_prof-4-2007.jpg

اخر مواضيعي 2007

االمثال مطبق على موقع بورصه سعودي

.

.

مواضيع مهمه ومطلوبه بكثره VB6

.

بــرامج ومشــاريع عربيه كامــله {HnHn} والمزيد في قسم برامج الاعضاء || ربط قواعد بيانات اكسس مع الفيجوال بيسك, مادة دراسية كاملة {بنت اليمن}|| المرجع الشامل لجمل SQL ا {GENIUS-IT} || كيفية التعامل مع مكتبة الـ DAO, في الوصول إلى قاعدة بيانات {رمضان} || مثال ريط Visaul Basic 6.0 مع SQL SERVER ا || العمليات التي تجرى على قاعدة البيانات, مثال كامل {بنت اليمن} || تصدير البيانات من الاكسل الي الاكسس بالفيجوال بيسك {HnHn} || البحث في قاعدة البيانات {MANSUR} || قواعد البيانات العلائقية وتقنيات الوصول إليها {عبد الله فتحي} || كيفية أظهار بيانات جدولين بواسطة التاريخ ,,,,,,,

.

أخي ربما سؤالك اجابته في أحدى هذه المواضيع فإن لم تجد قم بالبحث وان لم تجد اطرح سؤالك مع وضع عنوان مناسب بحيث ان يكون هذا العنوان دال على محتوى الموضوع فغير ذلك من أكبر الكبائر في المنتدى وسيؤدي الى غلق او حذف موضوعك .

.

</
#10

يا محمد ومين قالك انى انا مش مجربه انا بحطها كدة وخلاص

اما عن الحد فهتطحط فى Keypress وليس Change وشغالة

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

ياجاماعه الموضوع مش محتاج علماء ولا كتب

انسب كود ما قام بوضعه الاخ محمد

حيث ان حدث الـ KeyPress يجعل الوسيط KeyAscii الخاص بغير الارقام = 0

على رايك انا معرفش الموضوع اتفتح ليه اصلا المهم يلا نروح بقى عشان انا اتاخرت :lol:

موقع البرنامج

مبارك لشعب تونس photo-thumb-42837.png

#11

امسك يا عم ادينى عملت حاجة ممتزجة من الاتنين

Private Sub Text1_KeyPress(KeyAscii As Integer)

	If KeyAscii = 8 Then Exit Sub
	If Not IsNumeric(Chr(KeyAscii)) Then
		KeyAscii = 0
	End If
End Sub

موقع البرنامج

مبارك لشعب تونس photo-thumb-42837.png

#12

أحبائي في الله

أنا بشكركم كلكم والله الجميع يبذل مجهود رائع للمساعدة

أخي msayed2004 أحب أشكرك علي تفاعلك وسرعة إجابتك

الكود ناجح جدا ولكن لا يسمح للمستخدم بإدخال العلامة العشرية

ممكن تشرحلي إزاى نسمح للمستخدم بإدخال علامة عشرية مثلا أريد الرقم 100.59

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

وذلك لأننا لو سمحنا للمستخدم بإدخال أكثر من علامة عشرية فمعني ذلك ان الرقم المدخل خطأ

مما سيؤدي إلي أخطاء وقت التنفيذ Runtime Error

انا في إنتظار الجميع بحلول جميلة زي المنتدى الجميل ده

وشكرا للجميع

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

#13
Select Case KeyAscii
	Case Is < 32			   ' Control keys are OK.
	Case 46, 48 To 57		  ' This is a digit or a dot.
	Case Else				  ' Reject any other key.
		KeyAscii = 0
End Select

و التأكد من الأحتواء على أكثر من علامة عشرية ليه أكتر من طريقة , ممكن :

If Text1.Text <> "" Then
	Dim sDummy As String
	Dim iDiff As Long

	sDummy = Replace(Text1.Text, ".", "")
	iDiff = Len(Text1.Text) - Len(sDummy)

	If iDiff > 1 Then
		MsgBox "More than dot"
	End If
End If

ولو هتحطه بحدث الـ Validate :

If Text1.Text <> "" Then
	Dim sDummy As String
	Dim iDiff As Long

	sDummy = Replace(Text1.Text, ".", "")
	iDiff = Len(Text1.Text) - Len(sDummy)

	If iDiff > 1 Then
		Cancel = True '<- The difference is here
		MsgBox "More than dot"
	End If
End If

بس طبعا تكون خاصية CausesValidation مضبوطه على True

تم تعديل هذه المشاركة بواسطة msayed2004 في 8 مايو 2007 في 12:46

#14

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

اليك هذا الكود حيث انه لا يسمح لكتابة العلامه العشريه الا مره واحده فقط + يسمح لأستخدام مفتاح الـ BackSpace

	If InStr(1, Text1.Text, ".") = 0 And KeyAscii = 46 Then
		Exit Sub
	ElseIf KeyAscii = 8 Then
		Exit Sub
	ElseIf KeyAscii < Asc("0") Or KeyAscii > Asc("9") Then
		KeyAscii = 0
	End If

بالتوفيق ,,,,,,

A7med_prof

اقتباس

آسف الدخول متقطع هذه القتره

اقتباس

[يمين]

.[/يمين]

A7med_prof-4-2007.jpg

اخر مواضيعي 2007

االمثال مطبق على موقع بورصه سعودي

.

.

مواضيع مهمه ومطلوبه بكثره VB6

.

بــرامج ومشــاريع عربيه كامــله {HnHn} والمزيد في قسم برامج الاعضاء || ربط قواعد بيانات اكسس مع الفيجوال بيسك, مادة دراسية كاملة {بنت اليمن}|| المرجع الشامل لجمل SQL ا {GENIUS-IT} || كيفية التعامل مع مكتبة الـ DAO, في الوصول إلى قاعدة بيانات {رمضان} || مثال ريط Visaul Basic 6.0 مع SQL SERVER ا || العمليات التي تجرى على قاعدة البيانات, مثال كامل {بنت اليمن} || تصدير البيانات من الاكسل الي الاكسس بالفيجوال بيسك {HnHn} || البحث في قاعدة البيانات {MANSUR} || قواعد البيانات العلائقية وتقنيات الوصول إليها {عبد الله فتحي} || كيفية أظهار بيانات جدولين بواسطة التاريخ ,,,,,,,

.

أخي ربما سؤالك اجابته في أحدى هذه المواضيع فإن لم تجد قم بالبحث وان لم تجد اطرح سؤالك مع وضع عنوان مناسب بحيث ان يكون هذا العنوان دال على محتوى الموضوع فغير ذلك من أكبر الكبائر في المنتدى وسيؤدي الى غلق او حذف موضوعك .

.

</
#15

أخي msayed2004 كودك جميل جدا وناجح

شكرا جزيلا .... جزاك الله خيرا

أخي A7med_prof كودك أكثر من رائع

ويمتاز بأنه دمج كودين الأخ Msayed2004 وأختصرهم إلي كود واحد

وفي حدث واحد والله انت عبقري

مشكور وجزاك الله خيرا

منتدي الفريق العربي أنت منتدى رائع وفعلا انت منتدى الأذكياء

الجميع هنا متعاونون وفي خدمة بعضهم

شكرا للفريق العربي للبرمجه

هذا الموضوع مغلق.

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

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

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

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

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