05-10-13, 12:34 AM
السلام عليكم...
الدالة التالية تسمح لنا بقبول الحروف العربية فقط في مربع النص، بالإضافة إلى الخيارات (البارامترات الاختيارية) المبينة أدناه.
إذا كنا سنستعمل الدالة في أكثر من نافذة فإنه يجب وضعها في Module و تغيير تصريحها من Private إلى Public. هذه الدالة يتم استدعاؤها من داخل الإجراء KeyPress لمربع النص كما هو مبين فيما بعد:
* البارامتر KeyAscii هو قيمة المفتاح المضغوط (نفس البارامتر KeyAscii في الحدث KeyPress).
* البارامتر IncludeSpace اختياري و يحدد ما إذا سيتم قبول الفراغ أم لا. القيمة الافتراضية True و تعني أن الفراغ مقبول.
* البارامتر IncludeDigits اختياري و يحدد ما إذا سيتم قبول الأرقام (0 - 9) أم لا. القيمة الافتراضية False و تعني أن الأرقام غير مقبولة.
* البارامتر ExceptChars اختياري (نوعه String) و يحدد أية رموز (characters) أخرى مسموح بها (مقبولة). القيمة الافتراضية هي نص فارغ "" أي ليس هناك رموز أخرى مسموح بها.
= و يتم استدعاء الدالة كالتالي في إجراء الحدث KeyPress لمربع النص:
= أمثلة أخرى:
نرجو الاستفادة و السلام.
الدالة التالية تسمح لنا بقبول الحروف العربية فقط في مربع النص، بالإضافة إلى الخيارات (البارامترات الاختيارية) المبينة أدناه.
إذا كنا سنستعمل الدالة في أكثر من نافذة فإنه يجب وضعها في 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 ' قبول الحروف العربية و الفراغ بالإضافة إلى النقطة و علامة الاستفهام العربية
نرجو الاستفادة و السلام.
بِسْمِ اللهِ الرَّحْمَنِ الرَّحِيمِ ( وَ مَا تُقَدِّمُوا لِأَنفُسِكُم مِّنْ خَيْرٍ تَجِدُوهُ عِندَ اللهِ هُوَ خَيْراً وَ أَعْظَمَ أَجْراً ) صَدَقَ اللهُ الْعَظِيمُ