Array in List

  • Ich möchte die Werte die ich in einem Array stehen habe gerne in einer ListBox angezeigt bekommen und später auch damit weiterarbeiten...
    Ich bekomme es aber nur so hin, dass max. eine Zeile dort angezeigt wird :(

    [autoit]

    For $i = 1 to 20
    $var = RegEnumVal("HKEY_USERS\.DEFAULT\Software\Microsoft\Windows NT\CurrentVersion\PrinterPorts", $i);Liest den Schlüssel
    If @error <> 0 Then ExitLoop
    _ArrayAdd($adrucker, $var)
    next
    GUICtrlCreateList ($adrucker, 230, 190 , 140, 100)

    [/autoit]

    Wieso funktioniert das nicht?

  • Spoiler anzeigen
    [autoit]

    #include <array.au3>
    #include <GUIConstants.au3>
    Dim $aDrucker[1]
    #region - GUI Create
    GUICreate('', 200, 200)
    For $i = 1 To 40
    $var = RegEnumVal("HKEY_USERS\.DEFAULT\Software\Microsoft\Windows NT\CurrentVersion\PrinterPorts", $i);Liest den Schlüssel
    If Not @error Then
    _ArrayAdd($aDrucker, $var)
    Else
    ExitLoop
    EndIf
    Next
    $cList = GUICtrlCreateList("", 8, 8, 180, 180)
    GUICtrlSetData(-1, _ArrayToString($aDrucker))
    GUISetState()
    #endregion - GUI Create

    [/autoit] [autoit][/autoit] [autoit]

    #region - GUI SelectLoop
    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    Exit
    EndSelect
    WEnd
    #endregion - GUI SelectLoop

    [/autoit]
  • Ok. Danke euch beiden. Nächste Frage in dieser Sache: Ich habe nun die Werte meines Arrays dort stehen und kann sie auch anklicken. Wie mache ich das, dass eine Aktion ausgeführt wird, wenn ich z. B. den 2. Wert anklicke, und dann mit einem Button bestätige. Quasi etwas aus der Liste auswählen, und dann löschen. Bei Comboboxen bekomme ich es ja noch auf die Reihe, aber so?
    Da ja immer etwas anderes in das Array eingelesen wird (Also andere Werte) stehe gerade etwas auf dem Schlauch...

  • Hallo Scritch,

    ich habe das Beispiel von i2c ergänzt:

    Spoiler anzeigen
    [autoit]

    #include <array.au3>
    #include <GUIConstants.au3>
    Dim $aDrucker[1]
    #region - GUI Create
    GUICreate('', 200, 200)
    For $i = 1 To 40
    $var = RegEnumVal("HKEY_USERS\.DEFAULT\Software\Microsoft\Windows NT\CurrentVersion\PrinterPorts", $i);Liest den Schlüssel
    If Not @error Then
    _ArrayAdd($aDrucker, $var)
    Else
    ExitLoop
    EndIf
    Next
    $cList = GUICtrlCreateList("", 8, 8, 160, 160)
    GUICtrlSetData(-1, _ArrayToString($aDrucker))
    $btnCheck = GUICtrlCreateButton("&check",8,175)
    GUISetState()
    #endregion - GUI Create

    [/autoit] [autoit][/autoit] [autoit]

    #region - GUI SelectLoop
    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    Exit
    Case $msg = $btnCheck
    MsgBox(0,"Test",GUICtrlRead($cList))
    EndSelect
    WEnd
    #endregion - GUI SelectLoop

    [/autoit]

    mfg autoBert