- Offizieller Beitrag
Hi,
ich muß für eine Anwendung leider auf die Erstellung einer Combobox über die Funktion _GuiCtrlComboBoxEx_Create() zurückgreifen. Nur damit kann eine Combo auf einer Rebar angezeigt werden (und verschwindet nicht nach minimieren/wiederherstellen).
Leider ist es mir nicht möglich mehrere Item in der Box anzuzeigen. Standardstyle ist $CBS_DROPDOWN + $WS_VSCROLL. Obwohl die Funktion ..._AddString() die Indizes der neu erstellten Item zurückgibt sind diese nicht sichtbar. Die Liste der ComboBox lässt sich nicht ausklappen. Die Funktion _GUICtrlComboBoxEx_SetCurSel() wählt den gewünschten Wert aus, was beweist, dass die Werte in der Liste sind.
Wo liegt da der Hund begraben?
#include <Constants.au3>
#include <GuiComboBoxEx.au3>
$Gui = GUICreate("Test")
$hCombo = _GUICtrlComboBoxEx_Create($Gui, '', 0, 0, 200, 20)
$sCombo = "01.02.2012|02.02.2012|03.02.2012|05.02.2012|06.02.2012|08.02.2012|09.02.2012"
_GuiComboSetData($hCombo, $sCombo, "08.02.2012")
GUISetState()
[/autoit][autoit][/autoit][autoit]Do
Until GUIGetMsg() = -3
Func _GuiComboSetData($_hCombo, $_sItemString, $_sVisibleItem)
If StringLeft($_sItemString, 1) = '|' Then
_GUICtrlComboBoxEx_ResetContent($_hCombo)
$_sItemString = StringTrimLeft($_sItemString, 1)
EndIf
Local $aItem = StringSplit($_sItemString, '|'), $index, $iTop = -1
For $i = 1 To $aItem[0]
$index = _GUICtrlComboBoxEx_AddString($_hCombo, $aItem[$i])
;~ ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $index = ' & $index & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
If $iTop <> -1 Then ContinueLoop
If $aItem[$i] = $_sVisibleItem Then $iTop = $index
Next
_GUICtrlComboBoxEx_SetCurSel($_hCombo, $iTop)
EndFunc