تقييم الموضوع :
  • 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
تحياتي لكم ولكل الاخوة المشاركين في المنتدى الرائع وتسلم ايديكم والله يحفظكم مع التقدير العالي لكم والاحترام
الرد }}}}
تم الشكر بواسطة:
#5
كيف أسوي التصريح من Private إلي Public ??
الرد }}}}
تم الشكر بواسطة:
#6
(29-03-17, 08:15 PM)ahmed elkazaz كتب : كيف أسوي التصريح من Private إلي Public ??

السلام عليكم

عدل الكلمة الاولى في الكود من Private  الى  Public

ويكفي ان تضعها مرة واحدة في الموديل   وتستخدمها في اي فورم في المشروع

كالتالي 

PHP كود :
Public 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(SearchStrChr$(KeyAscii)) <> 0)
 
   End Select
End 
Function 

والله الموفق
بسم الله الرحمن الرحيم

Heart     مرحباً     C#   Heart
على الله توكلنا
مبتدئ سي شارب من 02/02/2017
الرد }}}}


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

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


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