Hallo Community,
Ich möchte gerne eine Combobox machen wo man die die Einträge wie bei einer Checkbox auswählen kann, kann mir da jemand Helfen?
Danke im vorraus
Hallo Community,
Ich möchte gerne eine Combobox machen wo man die die Einträge wie bei einer Checkbox auswählen kann, kann mir da jemand Helfen?
Danke im vorraus
Hallo Hamm00,
mir ist kein Stil bekannt, der es ermöglicht in einer ComboBox auch CheckBoxen anzuzeigen, du müsstest dir also ein eigenes Control schreiben bzw. dich mit einer anderen Lösung zb.: Edit-Control + PIc-Control + ListVie-Control etwas ähnliches nachbauen,
mfg (Auto)Bert
huhu
Da ich heute auch vor dem Problem, stand bastel ich mir grad was.
Ich wollt den jetzigen stand schon mal mit euch Teilen.
es ist aber noch Work in Process
Ich poste den jetzt schon, weil ich erst ma Feierabend mache.
Morgen gehts weiter^^
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Include <GuiEdit.au3>
AdlibRegister("CheckActive", 100)
Opt("GUIOnEventMode", 1) ; Wechsle in den OnEvent Modus
$hGui = GUICreate("E_Runde", 400, 300)
GUISetOnEvent($GUI_EVENT_CLOSE, "Ende")
Global $bNumber = 0
Global $iCCB = 3
Dim $aCombo[6] = [10, 30, 380, -1, -1, -1]
Dim $aText[$iCCB] = ["CheckBox 1", "CheckBox 2", "CheckBox 3"]
Global $testarray = ComboCheckBox($hGui, $iCCB, $aCombo, $aText)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]GUICtrlCreateLabel("Kategorie", 10, 10, -1, 15)
Global $cTyp = GUICtrlCreateInput("", 10, 80, 40, 20)
GUICtrlCreateLabel("Typ", 10, 60, -1, 15)
Global $cThema = GUICtrlCreateInput("", 60, 80, 330, 20)
GUICtrlCreateLabel("Thema", 60, 60, -1, 15)
Global $cAufgabe = GUICtrlCreateEdit("", 10, 140, 380, 100, BitOR($ES_MULTILINE, $ES_WANTRETURN, $WS_VSCROLL))
GUICtrlCreateLabel("Aufgaben/Ereignisse", 10, 120, -1, 15)
Global $bPaste = GUICtrlCreateButton("Einfügen", 40, 250, 150)
Global $bWeiter = GUICtrlCreateButton("Überspringen", 210, 250, 150)
GUISetOnEvent($GUI_EVENT_PRIMARYDOWN, 'Click')
GUICtrlSetOnEvent($bPaste, "bPaste")
GUICtrlSetOnEvent($bWeiter, "bWeiter")
GUISetState(@SW_SHOW, $hGui)
While 1
$bEndLoop = False
While $bEndLoop == False
Sleep(100)
WEnd
WEnd
Func bWeiter()
MsgBox(0,"","Weiter")
$bEndLoop = True
EndFunc
Func bPaste()
MsgBox(0,"","Paste")
$bEndLoop = True
EndFunc
Func ComboCheckBox($hPreviousGUI, $iNumber, $aCombo, $aText)
Local $cCCB[$iNumber+2]
Local $aPos = WinGetPos($hPreviousGUI)
GUISwitch($hPreviousGUI)
If $aCombo[4] < 0 Then $aCombo[4] = 0
$cCCB[0] = GUICtrlCreateInput("click here to choose", $aCombo[0], $aCombo[1], $aCombo[2], $aCombo[3], BitOR($ES_READONLY, $aCombo[4]), $aCombo[5])
If $aCombo[3] < 0 Then $aCombo[3] = 300
$cCCB[1] = GUICreate("ComboCheckbox",$aCombo[2] ,$aCombo[3] , $aPos[0] + $aCombo[0] + 3, $aPos[1] + $aCombo[1] + 20, $WS_POPUPWINDOW)
GUISetBkColor(0xFFFFFF)
For $y = 1 To $iNumber
$cCCB[$y + 1] = GUICtrlCreateCheckbox($aText[$y -1], 10, $y * 20)
Next
GUISwitch($hPreviousGUI)
Return $cCCB
EndFunc
Func Click()
$cursor = GUIGetCursorInfo($hGui)
If $cursor[4] = $testarray[0] Then
GUISetState(@SW_SHOW, $testarray[1])
EndIf
EndFunc
Func CheckActive()
If Not WinActive($testarray[1]) Then
GUISetState(@SW_Hide, $testarray[1])
$sControl = ""
$iControls = 0
For $z = 1 To $iCCB
If GUICtrlRead($testarray[$z+1]) == 1 Then
$sControl &= GUICtrlRead($testarray[$z+1], 1) & ", "
$iControls += 1
EndIf
Next
If $sControl == "" Then
$sControl = "click here to choose"
Else
If $bNumber <> 1 Then
$sControl = StringTrimRight($sControl, 2)
Else
$sControl = $iControls & " are checked"
EndIf
EndIf
GUICtrlSetData($testarray[0], $sControl)
EndIf
EndFunc
Func Ende()
Exit
EndFunc
Es ist zwar nicht so formschön aber du köntest eine Listview umfunktionieren.
So ungefähr.
#include <GUIListview.au3>
#include <ListviewConstants.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("", 633, 454, 192, 114)
$ListView1 = GUICtrlCreateListView("", 128, 48, 241, 50, BitOR($LVS_REPORT,$LVS_SINGLESEL,$WS_VSCROLL),$LVS_EX_CHECKBOXES)
_GUICtrlListView_addColumn(GUICtrlGetHandle($ListView1),"",220)
For $x = 1 to 10
GUICtrlCreateListViewItem($x,$ListView1)
Next
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case -3
Exit
EndSwitch
WEnd
aber da fehlt mir das aufklappen^^
Hi!
Kijan
Hättest du ein wenig die Suche genutzt würdes du Transparente Combobox (OwnCombo) von funkey Finden ein wenig umschreiben und FERTIG!
LG Kleiner
Wie soll ich denn darauf kommen? Darauf kommt man doch nur, wenn man das schon iwo gesehn hat
Und zu deinem Vorschlag.
Ich habs jetzt mal testhalber umgebaut... mich stört im moment noch sehr, dass wenn ich ich 2 anklicken will er wieder zuklappt, nachdem ich den ersten angeklickt haben...
wenn ich GUICtrlSetState($hOwnCombo, $GUI_HIDE) rausnehme dann geht die gar nimmer weg es sein denn ich klick auf den button .. auch doof...
und was mir auch noch fehlt ist, wenn ich den namen anklicke, dann nicht der haken gesetzt wird.
EDIT: das mit dem makieren konnte ich durch folgende Zeile beheben:
_GUICtrlListView_SetItemChecked($hOwnCombo, _GUICtrlListView_GetSelectedIndices($hOwnCombo))
bzw folgendes damit das mit dem deselektieren auch klappt:
[autoit]If Not _GUICtrlListView_GetItemChecked($hOwnCombo, _GUICtrlListView_GetSelectedIndices($hOwnCombo)) Then
_GUICtrlListView_SetItemChecked($hOwnCombo, _GUICtrlListView_GetSelectedIndices($hOwnCombo))
Else
_GUICtrlListView_SetItemChecked($hOwnCombo, _GUICtrlListView_GetSelectedIndices($hOwnCombo), False)
EndIf
bleibt noch das verschwinden der Auswahl bei "wegklicken" und nicht verschwinden beim Anklicken eines Items