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

التنقل بزر الأدخال ..

مغلق
بدأه فتى الوادي في 26 نوفمبر 2002 · 5 رد · 729 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

عندي بعض الأستفسارات إذا سمحتوا لي :

1- كيف أمكن زر الأدخال ( الأنتر ) من العمل مثل زر ( Tab ) ؟

2- كيف أجعل الكتابة بالعربي دون أستخدام الحروف الأنجليزية ؟

وشكراً للجميع

mk17481_26bccea871.gif
#2

بسم الله الرحمن الرحيم

تحية طيبة و بعد

لتنقل بزر الإنتر يمكنك استخدام الكود التالي طبعا بعد حذف control و استبدالها باسم العنصر الخاص و استخدام ال Index في مثل هذه الأمور يسهل عليك كثيرا

Private Sub Text1_KeyPress(Index As Integer, KeyAscii As Integer)

    If KeyAscii = 13 Then control.SetFocus 

End Sub

و لمنع الأحرف الإنجليزية يمكنك استخدام أحد طريقتين

1- تحويل لوحة المفاتيح إلى العربية باستخدام تابع API و هو LoadKeyboardLayout

2- منع كتابة الأحرف باللغة الإنجليزية و الطرق كثيرة و مثال على أحدها

Private Sub Text1_KeyPress(Index As Integer, KeyAscii As Integer)

     Select Case KeyAscii

        Case 65 To 91

            Beep

            KeyAscii = 0

        Case 97 To 123

            Beep

            KeyAscii = 0

        End Select

End Sub

و الله الموفق

#3

جزاك الله خيراً على سرعة الرد ...

لكن هل يلزم أن أضع الكود في كل مربع نص ؟ يعني إذا كان عندي مجموعة من مربعات النصوص .

ثم أن كود الكتابة بالعربي يجبرني أن أحول عربي ... لكن أنا أريد أن يتم التجويل مباشرة إلى العربي ...

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

mk17481_26bccea871.gif
#4

لجعل الكتابة بالعربي .. استخدمت هذا الكود من أحد الأخوان ...

Call loadkeyboardlayout("00000401",1)

لكن تطلع لي هذا الرسالة :

msgbox.JPG

فما هي المشكلة ...؟ ! وما هو الحل ؟!

وشكراً لك مرة أخرى

mk17481_26bccea871.gif
#5

بسم الله الرحمن الرحيم

يمكنك تعديل الكود لهذا الشكل

Private Sub Form_KeyPress(KeyAscii As Integer)

form1.KeyPreview=True 

If KeyAscii = 13 Then

SendKeys "{TAB}"

KeyAscii = 0

End If

End Sub

و لن تضطر لكتابة الكود في كل مرة و لكن لطريقة السابقة حسناتها في تحديد مسار آخر للحركة غير مسار حركة Tab

و تعديل الكود إلى الشكل التالي ليحول إلى العربي مباشرة

Private Sub Text1_KeyPress(Index As Integer, KeyAscii As Integer)

Select Case KeyAscii

        Case 65 To 91

            Beep

            KeyAscii = 0

            a = LoadKeyboardLayout("00000401", 1)

        Case 97 To 123

            Beep

            KeyAscii = 0

            a = LoadKeyboardLayout("00000401", 1)

        End Select

End Sub

و الله الموفق

#6

بسم الله الرحمن الرحيم

تحية طيبة و بعد

ربما يجدر بي التذكير بوجوب تعريف الدالة LoadKeyboardLayout قبل إمكانية استخدامها و ذلك على مستوى الوحدة على الأقل

و التعريف هو

Private Declare Function LoadKeyboardLayout Lib "user32" Alias "LoadKeyboardLayoutA" (ByVal pwszKLID As String, ByVal flags As Long) As Long

و متأسف على نسيان التنبيه لذلك مسبقا

و الله الموفق

هذا الموضوع مغلق.

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