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

كيفية تهيئة Textbox كي لا يقبل غير النصوص

بدأه batoot في 17 أبريل 2009 · 9 رد · 3,605 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

انا عامل text box بدخل فيه أسماء

عاوز كود او خاصية تعمل التالي

إني لما أجي اكتب أي رموز او أرقام او اي حاجه غير الحروف ما يقبلش وما يكتبش حاجه

أرجو الإفادة ضرووووووووووووووووووووري

لكم جزيل الشكر

انا بشتغل بـ vb6.0 و MS Access 2000

تم تعديل هذه المشاركة بواسطة batoot في 17 أبريل 2009 في 19:29

#2

الأخ الكريم/الأخت الكريمة

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

مرحباً بكم في منتدى الفريق العربي للبرمجة

نود تنبيهك أن العنوان غير مناسب.

الرجاء اختيار عنوان مناسب أكثر في مواضيعك القادمة، وهذا بمثابة إشعار للأهمية.

وفي حال التكرار سيتعرض موضوعك للإغلاق والحذف!!!

قواعد المشاركة

/index.php?showtopic=29343

شاكرين لكم حُسن تعاونكم

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

#3

لك جزيل الشكر

وانا متأسف إذا كنت إتسببت في أي اخطاء

وإن شاء الله مش هيتكرر

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

اللهم إنا نستغفرك عدد ما أنسانا الشيطان

اللهم اغفر للمسلمين و المسلمات الأحياء منهم و الاموات

#4

في الحدث KeyPress اكتب الكود التالي، يتأكد هذا الكود من كون المتغير KeyAscii محصوراً بين 60 و 90 وهي الأحرف الكبيرة، أو بين 97 و 122 وهي الأحرف الصغيرة، فإن كان خارج هذا النطاق، يتم جعل قيمته صفراً فلا يكتب شيئاً:

Private Sub Text1_KeyPress(KeyAscii As Integer)

	If (KeyAscii < 65) Or (KeyAscii > 90 And KeyAscii < 97) Or (KeyAscii > 122) Then
		KeyAscii = 0
	End If

End Sub

ملاحظة: هذا الكود لا يدعك تترك مسافات Space، كما لا يدعك تمحي آخر حرف BackSpace أما إذا أردت أن يمكنك ذلك، فاجعله هكذا:

Private Sub Text1_KeyPress(KeyAscii As Integer)

	If (KeyAscii < 65 And KeyAscii <> 8 And KeyAscii <> 32) Or (KeyAscii > 90 And KeyAscii < 97) Or (KeyAscii > 122) Then
		KeyAscii = 0
	End If

End Sub

تم تعديل هذه المشاركة بواسطة Abboodd في 17 أبريل 2009 في 20:28

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


#5

thnxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

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

لقد تم حل المشكلة

#6

السلام عليكم...

ضع الكود التالي في Module ثم استخدم الدالة IsLetter لقبول أو رفض أي حرف أو رقم أو رمز

  1. Public Enum TAcceptedLanguage
  2. LANG_BOTH_LANGS = 0
  3. LANG_ARABIC_ONLY = 1
  4. LANG_ENGLISH_ONLY = 2
  5. End Enum
  6.  
  7. Public Function IsLetter(KeyAscii As Integer, Optional ALanguage As TAcceptedLanguage = LANG_BOTH_LANGS, _
  8. Optional IncludeSpace As Boolean = True, Optional Exceptions As String = "") As Boolean
  9. Const ARABIC_LETTERS = "اىءأإآؤئبتثجحخدذرزسشصضطظعغفقكلمنهوية"
  10. Const ENGLISH_LETTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
  11.  
  12. Dim ALetter As String
  13.  
  14. On Error GoTo IsLetter_Error
  15.  
  16. If KeyAscii < 32 Then
  17. IsLetter = True
  18. ElseIf KeyAscii = 32 Then
  19. IsLetter = IncludeSpace
  20. Else
  21. ALetter = UCase$(Chr$(KeyAscii))
  22. Select Case ALanguage
  23. Case LANG_ARABIC_ONLY
  24. IsLetter = (InStr(ARABIC_LETTERS, ALetter) <> 0) Or (InStr(Exceptions, ALetter) <> 0)
  25. Case LANG_ENGLISH_ONLY
  26. IsLetter = (InStr(ENGLISH_LETTERS, ALetter) <> 0) Or (InStr(Exceptions, ALetter) <> 0)
  27. Case Else
  28. IsLetter = (InStr(ARABIC_LETTERS, ALetter) <> 0) Or (InStr(ENGLISH_LETTERS, ALetter) <> 0) Or (InStr(Exceptions, ALetter) <> 0)
  29. End Select
  30. End If
  31.  
  32. Exit Function
  33. IsLetter_Error:
  34. Err.Clear
  35. IsLetter = False
  36. End Function
  37.  

بارامترات الدالة IsLetter كالتالي:

* KeyAscii رقم آسكي للمفتاح المضغوط.

* ALanguage بارامتر اختياري، عدد صحيح بأخذ إحدى قيم النوع TAcceptedLanguage المذكور في بداية الكود، و القيم هي:

** LANG_BOTH_LANGS قبول الحروف العربية و الإنجليزية.

** LANG_ARABIC_ONLY قبول الحروف العربية فقط.

** LANG_ENGLISH_ONLY قبول الحروف الإنجليزية فقط.

القيمة الافتراضية هي LANG_BOTH_LANGS أي قبول حروف اللغتين.

* IncludeSpace بارامتر اختياري من النوع Boolean يحدد قبول أو رفض الفراغ (Space) القيمة الافتراضية هي True أي قبول الفراغ.

* Exceptions بارامتر اختياري من النوع String يحدد أي مجموعة من الحروف أو الأرقام أو الرموز نريد استثناءها، أي قبولها بالإضافة إلى الحروف. القيمة الافتراضية هي نص فارغ (Empty String) أي عدم قبول أية رموز عدا الحروف.

يتم استدعاء الدالة IsLetter في إجراء الحدث KeyPress لمربع النص، كما في الأمثلة التالية:

  1. Private Sub Text1_KeyPress(KeyAscii As Integer)
  2. ' قبول الحروف العربية و الإنجليزية و الفراغ
  3. If Not IsLetter(KeyAscii) Then KeyAscii = 0
  4. ' قبول الحروف العربية فقط و الفراغ
  5. If Not IsLetter(KeyAscii, LANG_ARABIC_ONLY) Then KeyAscii = 0
  6. ' قبول الحروف الإنجليزية فقط دون الفراغ
  7. If Not IsLetter(KeyAscii, LANG_ENGLISH_ONLY, False) Then KeyAscii = 0
  8. ' قبول الحروف العربية فقط و الفراغ و رموز العمليات الحسابية الأربع
  9. If Not IsLetter(KeyAscii, LANG_ARABIC_ONLY, True, "+-*/") Then KeyAscii = 0
  10. ' قبول الحروف العربية و الإنجليزية و الأرقام لكن دون فراغ
  11. If Not IsLetter(KeyAscii, LANG_BOTH_LANGS, False, "0123456789") Then KeyAscii = 0
  12. End Sub
  13.  

نرجو الاستفادة و السلام.

وَ قُلِ اعْمَلُوا فَسَيَرَى اللهُ عَمَلَكُمْ وَ رَسُولُهُ وَ الْمُؤْمِنُونَ

صدق الله العظيم

#7

انا ما عرفتش أعميل الكود بتاع IS Letter

يا ريت لو حد يكتبلي كود أحطه في الحدث Keypress

بحيث انه يقبل عربي

وكود يقبل عربي و إنجليزي

أرجو المساعده ضروري

#8

الحمدلله إشتغلت أخيرا

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

#9

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

بالمرفقات مثال عملي

الآن ستستطيع أن تلعب بمربع النص كما يحلو لك

أرقام فقط

عربي فقط

أجنبي فقط

أرقام وعربي

إلخ...

فقط افهم الفكرة

الشكر موصول للأخ الحبيب ناجي على أمثلته الرائعة

_______________.rar

فاعلم أنه لا إله إلا الله

#10

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

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