@darendeli
Verdiğin örnekte bazı değişiklikler yaptım. Incelersin. Kolay gelsin...
Kod: Tümünü seç
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Include <GuiComboBox.au3>
#include <ComboConstants.au3>
Global $ScriptDir = @ScriptDir
If StringRight($ScriptDir, 1) <> "\" Then $ScriptDir &= "\"
Global $IniFile = $ScriptDir & "inifile.ini"
Global $sInitial_Data = IniRead($IniFile,"Main","List","")
If StringLen($sInitial_Data) = 0 Then ;liste yoksa örnek liste yazalım
$sInitial_Data = "dog|doggy|dodger|kittens"
IniWrite($IniFile,"Main","List",$sInitial_Data)
EndIf
Global $aInitial_Array = StringSplit($sInitial_Data, "|",1)
Global $hGUI = GUICreate("Test", 500, 500)
Global $hCombo = GUICtrlCreateCombo("", 10, 30, 200, 20)
GUISetState()
Local $CurrentStr,$ActualStr,$CurrentList, $DefaultStr
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
$ActualStr = GUICtrlRead($hCombo)
If $ActualStr <> $CurrentStr Then
$CurrentStr = $ActualStr
$CurrentList = ""
$DefaultStr = ""
If Stringlen($ActualStr) > 0 Then
For $i = 1 To $aInitial_Array[0]
If StringLeft($aInitial_Array[$i], Stringlen($ActualStr)) = $ActualStr Then
$CurrentList &= "|" & $aInitial_Array[$i]
If $aInitial_Array[$i] = $ActualStr Then $DefaultStr = $aInitial_Array[$i]
EndIf
Next
EndIf
GUICtrlSetData($hCombo, $CurrentList,$DefaultStr)
If Stringlen($CurrentList) = 0 Then
GUICtrlSendMsg($hCombo, 335, False, 0)
Else
GUICtrlSendMsg($hCombo, 335, True, 0)
EndIf
If Stringlen($DefaultStr) = 0 Then
_GUICtrlComboBox_SetEditText($hCombo, $CurrentStr)
Else
_GUICtrlComboBox_SetEditSel($hCombo, -1, 0)
EndIf
EndIf
WEnd
Yardım dosyasındaki _GUICtrlComboBox_AutoComplete örneğinide bak istersen. Sonradan aklıma geldi.