تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] أختصار هذا الكود
#1
سلام عليكم

انا اريد منع الكتابة في التكست غير الاعداد وتم استخدام هذا الكود

PHP كود :
Private Sub Text1_KeyPress(KeyAscii As Integer)
If 
KeyAscii Asc("0") Or KeyAscii Asc("9"Then
     KeyAscii 
0
     End 
If
End Sub 
ولكن ليس من المعقول تكرارة في كل تكست ...

اريد كتابة الكود مرة واحد مع استخدام الفاصلة في الكود ووضع اسم التكست الثاني
الرد }}}}
تم الشكر بواسطة:
#2
السلام عليكم...

للأسف VB6 لا تدعم مشاركة نفس الإجراء لأكثر من كائن واحد. لكن يمكن تجاوز ذلك باستعمال الـ Class Modules كالتالي:

1. أضف إلى المشروع Class Module و قم بتسميتها باسم CNumberOnlyTextBox (من خلال الخاصية Name).
2. ضع بها الكود التالي:
كود :
Option Explicit

Private WithEvents m_TextBox As TextBox

Public Sub AttachTextBox(ATextBox As TextBox)
    Set m_TextBox = ATextBox
End Sub

Private Sub m_TextBox_KeyPress(KeyAscii As Integer)
    If KeyAscii > 31 Then
        If Chr$(KeyAscii) = "." Then
            If InStr(m_TextBox.Text, ".") <> 0 Then
                If m_TextBox.SelLength > 0 Then
                    If InStr(m_TextBox.SelText, ".") = 0 Then
                        KeyAscii = 0
                    End If
                Else
                    KeyAscii = 0
                End If
            End If
        ElseIf InStr("0123456789", Chr$(KeyAscii)) = 0 Then
            KeyAscii = 0
        End If
    End If
End Sub

3. أضف إلى المشروع Class Module أخرى و قم بتسميتها باسم CNumberOnlyTextBoxes (من خلال الخاصية Name).
4. ضع بها الكود التالي:
كود :
Option Explicit

Private TextBoxCollection As Collection

Private Sub Class_Initialize()
    Set TextBoxCollection = New Collection
End Sub

Private Sub Class_Terminate()
    Dim Idx As Long
    
    For Idx = TextBoxCollection.Count To 1 Step -1
        TextBoxCollection.Remove Idx
    Next Idx
    
    Set TextBoxCollection = Nothing
End Sub

Public Sub Add(ATextBox As TextBox)
    Dim ANewTextBox As New CNumberOnlyTextBox
    ANewTextBox.AttachTextBox ATextBox
    TextBoxCollection.Add ANewTextBox
End Sub

* تقول لماذا كل ذلك؟ - تذكر أنك تكتب الأكواد السابقة مرة واحدة فقط.

* الآن لأي Form بها مربعات نص تريدها أن تقبل أرقاماً فقط (بالإضافة إلى الفاصلة العشرية) نقوم بالتالي:

أ. في قسم التصريحات العام:
كود :
Private NumTextBoxes As New CNumberOnlyTextBoxes

ب. و في إجراء الحدث Load للـ Form نضيف مربعات النص المطلوبة:
كود :
Private Sub Form_Load()
    NumTextBoxes.Add Text1
    NumTextBoxes.Add Text3
End Sub

و إذا أردت أن تضيف مربعات نص أخرى (كي تقبل أرقاماً) فيكفي أن تضيف لكل منها سطراً واحداً في الحدث Form_Load.

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

PHP كود :
Public Function gWriteOnleNumber(IntKeyAscii As Integer)
If (
IntKeyAscii 48 Or IntKeyAscii 57Then
    gWriteOnleNumber 
0
Else
    
gWriteOnleNumber IntKeyAscii
End 
If
If 
IntKeyAscii 8 Then gWriteOnleNumber IntKeyAscii
If IntKeyAscii 13 Then gWriteOnleNumber IntKeyAscii
If IntKeyAscii 46 Then gWriteOnleNumber IntKeyAscii

End 
Function 
وضع هذا في حدث الـ KeyPress في كل تكست

PHP كود :
KeyAscii gWriteOnleNumber(KeyAscii
[صورة مرفقة: images?q=tbn:ANd9GcT72OLJW7D1E5QW-HUeWeJ...TGoNeg2jnQ]
الرد }}}}
تم الشكر بواسطة: ناجي إبراهيم , @@أبورائد@@ , baderb14
#4
انتظر حتى غد
سأريك طريقة جميلة لتفادي هذا المشكل
منقطع .. للدراسة Confused
الرد }}}}
تم الشكر بواسطة: @@أبورائد@@ , baderb14
#5
(25-10-13, 09:43 PM)ناجي إبراهيم كتب : * الآن لأي Form بها مربعات نص تريدها أن تقبل أرقاماً فقط (بالإضافة إلى الفاصلة العشرية) نقوم بالتالي:

أ. في قسم التصريحات العام:
كود :
Private NumTextBoxes As New CNumberOnlyTextBoxes

ب. و في إجراء الحدث Load للـ Form نضيف مربعات النص المطلوبة:
كود :
Private Sub Form_Load()
    NumTextBoxes.Add Text1
    NumTextBoxes.Add Text3
End Sub

و إذا أردت أن تضيف مربعات نص أخرى (كي تقبل أرقاماً) فيكفي أن تضيف لكل منها سطراً واحداً في الحدث Form_Load.

نرجو الاستفادة و السلام.
شكرا لك اخي ناجي وبارك الله فيك
جزاك الله الف خير
لم اعرف اطبق هذه أتمنى التوضيح اكثر

اخ تركي الحلواني
تم التطبيق وبالفعل نجحت ولقد نالت على اعجابي لسهولتها وسرعه تطبيقها
جزاك الله الف خير
وبارك الله فيك

(26-10-13, 02:11 AM)mamas1 كتب : انتظر حتى غد
سأريك طريقة جميلة لتفادي هذا المشكل

بانتظارك اخي
بارك الله فيك
الرد }}}}
تم الشكر بواسطة:
#6
الفكرة هي صنع برنامج يكتب الأكواد بطريقة سريعة و مهما كان العدد
أنظر هذا المشروع بصفة عامة و يمكنك تخصيصه


الملفات المرفقة
.rar   Help For all VB6 codes.rar (الحجم : 1.82 ك ب / التحميلات : 87)
منقطع .. للدراسة Confused
الرد }}}}
تم الشكر بواسطة: baderb14
#7
(26-10-13, 04:06 PM)mamas1 كتب : الفكرة هي صنع برنامج يكتب الأكواد بطريقة سريعة و مهما كان العدد
أنظر هذا المشروع بصفة عامة و يمكنك تخصيصه

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

ماقصرتم وبيض الله وجيهكم
الرد }}}}
تم الشكر بواسطة: mamas1


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [vb6.0] الكود باستخدام فيجوال بيسك6 تالين الورفلي 2 91 23-10-16, 10:38 AM
آخر رد: Ashraf Elafify
  اريد تعديل هذا الكود للبحث لاى كلمه فى النص رجل الكهرباء 2 111 03-10-16, 02:19 AM
آخر رد: رجل الكهرباء
Shocked [مثال] ربط قاعدة بيانات محمية في تقرير كرستال عن طريق الكود ياسر عبد الكريم 2 108 26-09-16, 11:54 PM
آخر رد: ياسر عبد الكريم
  [سؤال] ما هو الخطاء في هذا الكود allobaed 4 139 11-08-16, 06:04 PM
آخر رد: allobaed
  احتاج الى الكود لتحويل الارقام الى حروف hicham716 10 428 07-07-16, 09:29 PM
آخر رد: hicham716
  اساتذتى الكرام ارجو المساعدة فى هذا الكود mhareek 4 179 26-06-16, 02:29 PM
آخر رد: mhareek
  اساتذتى الكرام ارجو المساعدة فى هذا الكود mhareek 2 142 24-05-16, 11:14 AM
آخر رد: mhareek
  اين المشكلة في هذا الكود ؟ محمد ئوزبك 3 187 19-04-16, 02:10 AM
آخر رد: محمد ئوزبك
  ما الخطأ فى هذا الكود - اريد جلب كود الشركة بمجرد اختيار اسم الشركة من الـ Combo1 Ashraf Elafify 2 217 07-04-16, 12:20 PM
آخر رد: Ashraf Elafify
Exclamation [كود] مشكلة ارجو حلها بيجاد الكود المناسب هيثم الريس 3 180 25-02-16, 05:30 AM
آخر رد: Ahmed_Mansoor

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


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