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

فرز الكومبو بوكس فى اكس بى و ويندوز 2000

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

عندما اقوم بعمل كومبو بوكس و جعل خاصية سورتد الى ترو و أقوم بالكتابة بلوحة المفاتيح على الكومبو يقوم الفيجوال بيسك أثناء التنفيذ بالذهاب الى البيان المطابق للكتابة فى ويندو 98 فقط ولكن عند تنفيذ نفس البرنامج فى الاكس بى او ويندوز 2000 لا تعمل هذا الخاصية

ارجو معرفة سبب عدم تشغيل هذه الخاصية أفادكم الله

#2
ابو ماضى كتب:
عندما اقوم بعمل كومبو بوكس و جعل خاصية سورتد الى ترو و أقوم بالكتابة بلوحة المفاتيح على الكومبو يقوم الفيجوال بيسك أثناء التنفيذ بالذهاب الى البيان المطابق للكتابة فى ويندو 98 فقط ولكن عند تنفيذ نفس البرنامج فى الاكس بى او ويندوز 2000 لا تعمل هذا الخاصية

ارجو معرفة سبب عدم تشغيل هذه الخاصية أفادكم الله

اين الردود 0000000000000000000000000000000000000000000000

#3

سيدي هذه الخاصية عملها الرئيسي هي ترتيب البيانات ابجديا ، وليست بالضرورة ان تكون لاي شي اخر .

اما انها اشتغلت معك في ويندوز 98 ولم تعمل في Xp هذا الامر يعود لنظام التشغيل نفسه .

ولكن لا يوجد شي اسمه مستحيل .

اليك الحل النهائي .

هذه الدالة ضعها في موديول

'----------------------- Top Lines In Module File
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const CB_FINDSTRING = &H14C
'---------------------------

Public Sub AutoSearchInCombo(swCombo As ComboBox, swKeyAscii As Integer)
Dim lngFind As Long, intPos As Integer, intLength As Integer


With swCombo

If swKeyAscii = 8 Then
If .SelStart = 0 Then Exit Sub
.SelStart = .SelStart - 1
.SelLength = 32000
.SelText = ""
Else
.SelText = Chr(swKeyAscii)
End If
swKeyAscii = 0
lngFind = SendMessage(.hwnd, CB_FINDSTRING, 0, ByVal .Text)
If lngFind = -1 Then Exit Sub
intPos = .SelStart
intLength = Len(.List(lngFind)) - Len(.Text)
.SelText = .SelText & Right(.List(lngFind), intLength)
.SelStart = intPos
.SelLength = intLength
End With

End Sub

ثم استدعيها في كل كومبو بوكس في الحدث KeyPress

AutoSearchInCombo Combo1 , KeyAscii

سلاماتي

تم تعديل هذه المشاركة بواسطة prof_1982 في 24 ديسمبر 2005 في 14:40

الإنسان الذي يقول بأنه لا يمكن عمل شيء يجب ألا يعيق مطلقاً الإنسان الذي يقوم بعمل ذلك الشيء.

إن تخطئ فأنت إنسان ... أما أن تلوم جهازك الكمبيوتر على خطأك فهذا أكثر إنسانية.

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

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…