PDA

View Full Version : با زدن حرف اول اسم کامبو اسم رو کامل بیاره



mahboobeh
جمعه 28 بهمن 1384, 18:06 عصر
من یه کامبو باکس دارم که توی اون اسم افراد قرار داره میخوام وقتی کاربر حرف اول یه اسم رو زد
کامبو اسم کامل رو نشون بده اما الان اینطور نیست ممنون میشم کمک کنید

davood110
شنبه 29 بهمن 1384, 08:41 صبح
سلام

بیبن دوست عزیز من کامپوننتش را ندارم ولی خودم سه تا تابع نوشتم که اگر در رویدادهای changeو keyPress وlostfocuse بگذاری تو دارای جستجو خواهد شد و هنوز وقت نکردم آن را کامپوننت کنم.
تابعهایی هم هست که جستجو را از ابتدای سطرهای combobox انجام نمی دهد بلکه در کل رشته آن combobox جستجو می کند
اگه خواستی بگو تا برات بفرستم .

احمد آقا
شنبه 29 بهمن 1384, 11:31 صبح
یه کامبو بذار رو فرمت بعد این کدو بچسبون تو فرمت

Option Explicit

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
Private Const CB_ERR = (-1)

Private Declare Function PostMessage Lib "user32" Alias _
"PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _
ByVal wParam As Long, ByVal lParam As Long) As Long

Private Const CB_SETCURSEL = &H14E
Private m_bEditFromCode As Boolean


Private Sub Form_Load()

With Combo1
.AddItem "Iran"
.AddItem "Pars"
.AddItem "Maad"
.AddItem "IranVig"
.AddItem "Aria"
End With

End Sub

Private Sub Combo1_Change()
Dim i As Long, j As Long
Dim strPartial As String, strTotal As String
If m_bEditFromCode Then
m_bEditFromCode = False
Exit Sub
End If

With Combo1

strPartial = .Text
i = SendMessage(.hwnd, CB_FINDSTRING, -1, ByVal strPartial)

If i <> CB_ERR Then
strTotal = .List(i)
j = Len(strTotal) - Len(strPartial)
If j <> 0 Then
m_bEditFromCode = True
.SelText = Right$(strTotal, j)
'Select unmatched characters
.SelStart = Len(strPartial)
.SelLength = j
Else
End If
End If
End With

End Sub

Private Sub Combo1_KeyDown(KeyCode As Integer, Shift As Integer)

Select Case KeyCode
Case vbKeyDelete
m_bEditFromCode = True
Case vbKeyBack
m_bEditFromCode = True
End Select

End Sub

sohrab o
شنبه 29 بهمن 1384, 13:45 عصر
کگه خوده کامبو جستجو نمی کنه ؟
قبلا که این کارو می کرد

mahboobeh
شنبه 29 بهمن 1384, 19:09 عصر
وقتی حرف اول اسم رو می زنی باید کلیدهای اروکی رو فشار بدی تا اون اسم توی تکست کامبو بیاد من می خوام بدون فشار دادن کلید های اروکی اسم کامل رو بیاره

H_SH_VB
شنبه 29 بهمن 1384, 22:32 عصر
منم فکر میکنم یه راهی جز کد نویسی داره
یعنی یه Property ای چیزی

davood110
دوشنبه 01 اسفند 1384, 08:08 صبح
نه property چیزی نداره ولی اگر کلمه را بنویسی و F4 را فشار دهی combo از اولین جایی که ابتدای آن با ورودی تو یکسان است لیست را باز می کنه ولی اگر به صورت خودکار می خوای نشون بدی فقط باید کد نویسی کنی

Morteza Manafpour
دوشنبه 01 اسفند 1384, 11:57 صبح
من یه همچین کدی دارم.
می‌گردم واست پیدا کردم می‌فرستم.
ولی تو DataCombo نتونستم این کارو بکنم

meh_secure
دوشنبه 01 اسفند 1384, 12:20 عصر
شما دنبال auto compelete هستید. در سایت جستجو کنید و اگر پیدا نشد در سایتهای مشابه (خارجی). این خصوصیت در کامبو باکسهای دات نت اضافه شده اند.

mahboobeh
جمعه 05 اسفند 1384, 22:29 عصر
ممنون میشم اگه این کدا رو واسم بزارین

Yalda2005
جمعه 05 اسفند 1384, 22:50 عصر
روی combo کلیک کن و بنویس :
ComboBox1.Style:=csDropDownList;
البته این ماله دلفیه ...

mahboobeh
جمعه 05 اسفند 1384, 23:49 عصر
نه این دستور کمکی نمی کنه
می تونیم یه کاری بکنیم که بعد از فشرده شدن هر کلید کیبرد روی کامبو کلید f4 فراخوانی بشه؟
اگه بشه این کار رو کرد احتمالا مشکل حل میشه
یا اینکه بعد از فشرده شدن هر کلید کیبرد , اوکی رو به بالا فراخوانی بشه
کسی میدونه چطور باید این کار رو کد؟

H_SH_VB
شنبه 06 اسفند 1384, 23:24 عصر
combo1.setfocus
sendkeys{F4}

vb341
شنبه 06 اسفند 1384, 23:39 عصر
اصلا نیازی به کد نویسی نیست . یک نمونه کار سر فرصت میزارم

vb341
شنبه 06 اسفند 1384, 23:54 عصر
دوست عزیز همونطور که گفتم نیازی به هیچ کدی نیست برنامه رو نگا کن متوجه میشی .
با زدن حرف اول هر اسم - اسم مورد نظر پیدا میشه و اگر چندتا اسم حرف اولشون یکی بود با کلید جهت رو به پایین میتونی جستجو رو ادامه بدی

vb341
شنبه 06 اسفند 1384, 23:56 عصر
دوارم مشکلتون حل شده باشه

vb341
شنبه 06 اسفند 1384, 23:59 عصر
ببخشید . امیدوارم !!!

H_SH_VB
یک شنبه 07 اسفند 1384, 14:24 عصر
ممنون
ولی شما چون DB استفاده کردی اینجوریه

vb341
یک شنبه 07 اسفند 1384, 23:42 عصر
مگه شما چکار میکنی

davood110
دوشنبه 08 اسفند 1384, 08:14 صبح
بیا این هم تابعهایی که بهت گفتم با یه مثال کامل برات توضیح دادم این دیگه حتما مشکلت را برطرف می کنه اگه خواستی کد برای datacombo هم دارم خواستی بگو و دیگه اینکه تابعها میشه جوری هم تغییر داد که از اول رشته ها جستجو نکنه ودر کل رشته جستجو کنه

H_SH_VB
دوشنبه 08 اسفند 1384, 21:26 عصر
اونی که من عرض کردم درسته که شاید راه اصولی ای نباشه
ولی همه جا کار می کنه
نه فقط تو db

Milad Mohseny
جمعه 12 اسفند 1384, 01:58 صبح
سلام خدمت دوستان عزیز
خانم mahboobeh یک فایل مانیفست کنار برنامه Exe ات قرار بده مشکل جستجوت هم در کامبو باکس و هم در دیتا کمبو خود به خود حل میشود بدون یک خط کد نویسی.
اگر نشد بگو یک نمونه برنامه در اینجا قرار دهم .

H_SH_VB
جمعه 12 اسفند 1384, 02:21 صبح
فایل مانیفست خوب چیکار میکنه که درست میشه؟
بعنی مکانیزمش چیه؟
بعدش اون فایل مانیفست بعضی وقتا تو بعضی سیستم ها error میده

mahboobeh
جمعه 12 اسفند 1384, 09:14 صبح
ببخشید این فایل مانیفست اصلا چیه ؟

H_SH_VB
جمعه 12 اسفند 1384, 11:21 صبح
یه فایل Xml هست که میزارن کنار برنامه و قیافه کنترل ها مثل XP میشه بگردی تو سایت هست

Milad Mohseny
جمعه 12 اسفند 1384, 22:56 عصر
با سلام خدمت دوستان عزیز
یک برنامه نمونه گذاشتم .
همانطور که قبلاً گفته شد یک فایل مانیفست باید هم نام و کنار فایل اجرایی برنامه ما باشد .
برنامه ای را هم که من آپلود کردن اگر فایل اجرایی را اجرا کنید عمل جستجو را انجام میدهد ولی اگر به محیط طراحی در VB بروید کار نمیکند برای حل این مشکل یک کپی از فایل مانیفستی که در پوشه آپلود شده است را در مسیری که VB را نصب کرده اید و با نام vb6.exe.manifest کپی کنید و از دفعه بعد که VB را باز کنید هم شکل کنترل ها عوض میشود و هم سرچ در کامبو ها درست میشود . در جواب نوشته H_SH_VB عزیز که گفته بود در بعضی سیستم ها Error میدهد اگر از روش صدا زدن یک تابع API که در این برنامه هم هست استفاده کنی دیگر از Error خبری نیست .
موفق باشید .

H_SH_VB
شنبه 13 اسفند 1384, 09:19 صبح
آقا ممنون
ولی با این تابع هم باز Error میده یعنی قبلا که با همین امتحان کردم میداد
شما میدونی حالا چرا من وقتی از کنترل KewlButton استفاده می کنم رو بعضی سیستم ها out of memory میده؟
مشکل رم و اینا نیست البته ها

Milad Mohseny
یک شنبه 14 اسفند 1384, 01:06 صبح
دوست عزیز ببین با اینها مشکلت حل میشه .
البته لازم به ذکر است که محتویات این پوشه تماماً از این سایت دانلود شده و هیچکدام مال من نیست .

adhami
شنبه 27 اسفند 1384, 15:24 عصر
چرا آدرس سایت غیر فعال است ؟ میشه لطفا برای من هم این کدها رو بفرستید.
مرسی