تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
قبول حروف عربية فقط (مع إضافة خيارات)
#1
السلام عليكم...

الدالة التالية تسمح لنا بقبول الحروف العربية فقط في مربع النص، بالإضافة إلى الخيارات (البارامترات الاختيارية) المبينة أدناه.

إذا كنا سنستعمل الدالة في أكثر من نافذة فإنه يجب وضعها في Module و تغيير تصريحها من Private إلى Public. هذه الدالة يتم استدعاؤها من داخل الإجراء KeyPress لمربع النص كما هو مبين فيما بعد:

كود :
Private Function IsArabicLetter(ByVal KeyAscii As Integer, _
                                Optional ByVal IncludeSpace As Boolean = True, _
                                Optional ByVal IncludeDigits As Boolean = False, _
                                Optional ByVal ExceptChars As String = "") As Boolean
    Const ARABIC_LETTERES As String = "اىءأإآئؤبتثجحخدذرزسشصضطظعغفقكلمنهوية"
    Dim SearchStr As String
    
    Select Case KeyAscii
        Case Is < 32
            IsArabicLetter = True
        Case 32
            IsArabicLetter = IncludeSpace
        Case 48 To 57
            IsArabicLetter = IncludeDigits
        Case Else
            SearchStr = ARABIC_LETTERES & Trim$(ExceptChars)
            IsArabicLetter = (InStr(SearchStr, Chr$(KeyAscii)) <> 0)
    End Select
End Function

* البارامتر KeyAscii هو قيمة المفتاح المضغوط (نفس البارامتر KeyAscii في الحدث KeyPress).
* البارامتر IncludeSpace اختياري و يحدد ما إذا سيتم قبول الفراغ أم لا. القيمة الافتراضية True و تعني أن الفراغ مقبول.
* البارامتر IncludeDigits اختياري و يحدد ما إذا سيتم قبول الأرقام (0 - 9) أم لا. القيمة الافتراضية False و تعني أن الأرقام غير مقبولة.
* البارامتر ExceptChars اختياري (نوعه String) و يحدد أية رموز (characters) أخرى مسموح بها (مقبولة). القيمة الافتراضية هي نص فارغ "" أي ليس هناك رموز أخرى مسموح بها.

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

كود :
Private Sub Text1_KeyPress(KeyAscii As Integer)
    If Not IsArabicLetter(KeyAscii) Then KeyAscii = 0    ' قبول الحروف العربية و الفراغ
End Sub

= أمثلة أخرى:

كود :
If Not IsArabicLetter(KeyAscii, , True) Then KeyAscii = 0    ' قبول الحروف العربية و الفراغ و الأرقام
If Not IsArabicLetter(KeyAscii, False, True) Then KeyAscii = 0    ' قبول الحروف العربية و الأرقام دون الفراغ
If Not IsArabicLetter(KeyAscii, , , ".؟") Then KeyAscii = 0    ' قبول الحروف العربية و الفراغ بالإضافة إلى النقطة و علامة الاستفهام العربية

نرجو الاستفادة و السلام.
بِسْمِ اللهِ الرَّحْمَنِ الرَّحِيمِ ( وَ مَا تُقَدِّمُوا لِأَنفُسِكُم مِّنْ خَيْرٍ تَجِدُوهُ عِندَ اللهِ هُوَ خَيْراً وَ أَعْظَمَ أَجْراً ) صَدَقَ اللهُ الْعَظِيمُ
الرد }}}}
#2
السلام عليكم


بارك الله فيك على جهدك المتواصل

يعطيك العافية
شـــايـفـــك

الرد }}}}
تم الشكر بواسطة:
#3
دائما طرحك جميل ومميز
الرد }}}}
تم الشكر بواسطة:
#4
تحياتي لكم ولكل الاخوة المشاركين في المنتدى الرائع وتسلم ايديكم والله يحفظكم مع التقدير العالي لكم والاحترام
الرد }}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  إضافة برنامجك في قائمة السماح للجدار الناري للوندوز Ahmed_Mansoor 5 278 30-01-16, 05:10 PM
آخر رد: VB_Local
  قبول الأعداد فقط ناجي إبراهيم 6 2,188 14-06-14, 12:01 PM
آخر رد: king2512010

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم