mustafakara Posted May 3, 2013 Share Posted May 3, 2013 sevgili arkadaşlar comboboxta yazılanı listelemesini istiyorum bunun için ne yapmalıyım daha önce bir arkadaşın yaptığı örnek vardı ancak bu yanlızca kelime başından itibaren listeliyor benim istediğim sadece kelime başından itibaren değil boşluktan sonra yazdıklarımı içerenleride listelemesini istiyorum örneğin liste içersinde şu isimler var "mustafa kara" "hamit kara" "kara yolları" "murat ak" ben "kara" yazdığımda kara yolları mustafa kara hamit kara gibi isimleri listelemesini istiyorum. bunu yanlızca combo içersine yapabilirsek daha iyi olur çünkü ben ismi yazdıktan sonra birde tab tuşu ile listeye gitmem gerekiyor aynı google gibi birşey istiyorum tabi mümkünse şimdidem teşekkür ederim. arkadaşın yaptığı örnek: #include <GUIListBox.au3> #include <GuiConstantsEx.au3> Global $FILE_LIST = @ScriptDir & "\Config.ini" _Main() Func _Main() Local $hCombo,$mylist,$SET_DATA,$BL_Value,$BL_Value1 = "?" GUICreate("YAZILANI LİSTELE", 400, 296) $hCombo = GUICtrlCreateCombo("", 0, 3, 400, 24) $mylist = GUICtrlCreateList("", 0, 24, 400, 97) GUISetState() While 1 $nMsg = GUIGetMsg() Switch $nMsg Case -3 Exit EndSwitch $BL_Value = GUICtrlRead($hCombo) If $BL_Value <> $BL_Value1 Then GUICtrlSetData($mylist,"") $var2 = IniReadSectionNames($FILE_LIST) For $I = 1 To $var2[0] If StringLeft($var2[$I],StringLen($BL_Value)) = $BL_Value Then GUICtrlSetData($mylist,$var2[$I]) Next $BL_Value1 = $BL_Value _GUICtrlListBox_SetCurSel($mylist, 0) EndIf WEnd GUIDelete() EndFunc ;==>_Main Quote Link to comment Share on other sites More sharing options...
asmazh Posted May 3, 2013 Share Posted May 3, 2013 Valla kardeş ne dedin, ne yapmak istiyorsun tam anlamadım. Şöyle bir şey karaladım ama. #include <GuiComboBox.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <Constants.au3> #include <GuiListBox.au3> #include <GuiListView.au3> $Debug_CB = False ; Check ClassName being passed to ComboBox/ComboBoxEx functions, set to True and use a handle to another control to see it work Global $hCombo _Main() Func _Main() Local $hGUI ; Create GUI $hGUI = GUICreate("(UDF) ComboBox Create", 400, 296) $hCombo = _GUICtrlComboBox_Create($hGUI, "", 2, 2, 396, 296) Global $list = GUICtrlCreateList("", 2, 25, 296, 240) Global $Items = "mustafa kara|hamit kara|kara yolları|murat ak", $Items_S = StringSplit($Items, "|") GUICtrlSetData(-1, $Items) Global $check = GUICtrlCreateCheckbox("gelişmiş arama", 2, 270, 200, 21) GUISetState() GUIRegisterMsg($WM_COMMAND, "WM_COMMAND") ; Loop until user exits Do Until GUIGetMsg() = $GUI_EVENT_CLOSE GUIDelete() EndFunc ;==>_Main Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam) #forceref $hWnd, $iMsg Local $hWndFrom, $iIDFrom, $iCode $hWndFrom = $ilParam $iIDFrom = BitAND($iwParam, 0xFFFF) ; Low Word $iCode = BitShift($iwParam, 16) ; Hi Word Switch $hWndFrom Case $hCombo Switch $iCode Case $CBN_EDITCHANGE ; Sent when the edit control portion of a combo box is about to display altered text Local $text = _GUICtrlComboBox_GetEditText($hCombo) If BitAND(GUICtrlRead($check), $GUI_CHECKED) = 0 Then Return _GUICtrlListBox_SelectString($list, $text) _GUICtrlListBox_FindInText($list, $text) Local $count = _GUICtrlListBox_GetCount($list) If $text = "" Then For $i = 1 To $Items_S[0] _GUICtrlListBox_AddString($list, $Items_S[$i]) Next Else For $i = 1 To $Items_S[0] If StringInStr($Items_S[$i], $text) Then _GUICtrlListBox_ResetContent($list) _GUICtrlListBox_AddString($list, $Items_S[$i]) Return EndIf Next EndIf EndSwitch EndSwitch Return $GUI_RUNDEFMSG EndFunc ;==>WM_COMMAND Quote Link to comment Share on other sites More sharing options...
mustafakara Posted May 6, 2013 Author Share Posted May 6, 2013 sevgili asmazh öncelikle teşekkür ederim tatil nedeniyle bakamamıştım ancak şimdi bakabildim kususuruma bakma lütfen ben bir telefon rehberi programı yapıyorum hatta daha önce yaptım onun birazdaha farklısını yapmaya çalışıyorum daha öncekinde isim arama bölümünü combobox u AutoComplete olarak yaptım ancak bunda benim yazdıklarıma yakın olanları tamamlıyordu ben şunu istiyorum hatta bu yanlızca combobox ta oluyorsa daha iyi afyonkarahisar bazında düşünürsek bana bir devlet hastahanesi lazım ben devlethastahanesi yazdığımda "emirdağ devlet hastahanesi" "dinar devlet hastahanesi" merkezi yanlızca devlet hastahanesi olarak kaydetmişim onuda devlet hastanesi olarak listelemesini istiyorum yanidevlet hastanesi yazdığımda bulunan liste şu şekilde olmalı "devlet hastahanesi" "emirdağ devlet hastanesi" "dinar devlet hastahanesi" yukarıda google.com daki gibi birşey olabilir demiştim bunun sebebi ben görme engelli olduğum için orada yazdığımda yazdığıma yakın olanlar liste halinde çıkıyor ben ok tuşlarıyla dolaşabiliyorum şimdi sizin yaptığınız ve benim verdiğim örnekte yazdığımı bitirdikten sonra tab tuşuna basarak listeye ulaşıyorum dahasonra ok tuşlarıyla dolaşıyorum umarım anlatabilmişimdir Quote Link to comment Share on other sites More sharing options...
asmazh Posted May 7, 2013 Share Posted May 7, 2013 (edited) Veri tabanı programcılığı gerektiriyor yapmak istediklerin. Veri tabanını şekillendirirken (tablo, hücre vs...) yukarıda bahsettiğin kriterleri göz önünde bulundurman lazım. Eğer sağlam bir veri tabanı algoritması geliştirirsen belirlediğin standartlardaki bilgileri çekmen de kolay olur. Sadece AutoIt bilgisi yetmez bunun için... (Tabi eğer çok gelişmiş bir şey yapmak istiyorsan.) Ayrıca benim üstte verdiğim örneği yapmak istediklerine göre düzenlersen iyi sonuçlar elde edebilirsin. Edited May 7, 2013 by asmazh Quote Link to comment Share on other sites More sharing options...
mustafakara Posted May 8, 2013 Author Share Posted May 8, 2013 sevgili asmazh kolay gelsin bizim input yada combo lara yazdığımız yazılar soldan başlayarak yazdıklarımızı listede tutup diğerlerini listeden eliyor benim söylemek istediğim ise ilk etapta soldan başlayarak yazdıklarımı içerenleri bulduktan sonra daha sonrada boşluktan sonra yazdıklarımı içerenleri eklemesini istiyorum kara yazdığımda ilk etapta karayla başlayanları daha sonrada misal mustafa karayı eklemesi gibi yinede teşekkürler kolay gelsin Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.