GUICtrlCreateList auslesen

  • Ich möchte gerne Mailadressen aus einer Liste auswerten, dabie habe ich zwei Probleme:

    1. Ich kann nur alles in der Listbox2 löschen, nicht aber einzelnen Adressen

    2. Mir ist bist dato nicht bekannt, wie ich die in Listbox2 enthalten Einträge wieder auslesen kann.

    Wer hilft mir bitte

    [autoit]


    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GUIListBox.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form2 = GUICreate("Mailadressen", 345, 254, 302, 218)
    ;~ GUISetIcon("D:\007.ico")
    $ListBox1 = GUICtrlCreateList("", 8, 8, 137, 201)
    GUICtrlSetData(-1,"test@mail.de|[email='monster@mail.de'][/email]|autoit@mail.de")

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

    $Button1 = GUICtrlCreateButton(">", 156, 15, 30, 25, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("<<", 157, 81, 31, 25, $WS_GROUP)

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

    $ListBox2 = GUICtrlCreateList("", 200, 8, 137, 201)
    GUICtrlSetState(-1, $GUI_FOCUS)
    $Button3 = GUICtrlCreateButton("&OK", 104, 225, 75, 25, $WS_GROUP)
    $Button4 = GUICtrlCreateButton("&Cancel", 184, 225, 75, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    $msg = 0
    While $msg <> $GUI_EVENT_CLOSE
    $msg = GUIGetMsg()
    Select
    Case $msg = $Button1
    GUICtrlSetData($ListBox2, GUICtrlRead($ListBox1))
    Case $msg = $Button2
    GUICtrlSetData($ListBox2, "")
    Case $msg = $Button3
    MsgBox(0, "","Mailadressen")
    Case $msg = $Button4
    MsgBox(0, "", "Ende", 2)
    Exit
    EndSelect
    WEnd

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

    2 Mal editiert, zuletzt von kunstlust (16. August 2011 um 15:48)

  • Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GUIListBox.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form2 = GUICreate("Mailadressen", 345, 254, 302, 218)
    ;~ GUISetIcon("D:\007.ico")
    $ListBox1 = GUICtrlCreateList("", 8, 8, 137, 201, BitOR($LBS_STANDARD, $LBS_EXTENDEDSEL))
    GUICtrlSetData(-1, "test@mail.de|[email='monster@mail.de'][/email]|autoit@mail.de")

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

    $Button1 = GUICtrlCreateButton(">>", 156, 15, 30, 25, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("<<", 157, 81, 31, 25, $WS_GROUP)

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

    $ListBox2 = GUICtrlCreateList("", 200, 8, 137, 201)
    GUICtrlSetState(-1, $GUI_FOCUS)
    $Button3 = GUICtrlCreateButton("&OK", 104, 225, 75, 25, $WS_GROUP)
    $Button4 = GUICtrlCreateButton("&Cancel", 184, 225, 75, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    $msg = 0
    While $msg <> $GUI_EVENT_CLOSE
    $msg = GUIGetMsg()
    Select
    Case $msg = $Button1
    $aIndex = _GUICtrlListBox_GetSelItems($ListBox1)
    If $aIndex[0] > 0 Then
    For $i = $aIndex[0] To 1 Step -1
    $sText = _GUICtrlListBox_GetText($ListBox1, $aIndex[$i])
    _GUICtrlListBox_DeleteString($ListBox1, $aIndex[$i])
    _GUICtrlListBox_AddString($ListBox2, $sText)
    Next
    EndIf
    Case $msg = $Button2
    GUICtrlSetData($ListBox2, "")
    Case $msg = $Button3
    MsgBox(0, "", "Mailadressen")
    Case $msg = $Button4
    MsgBox(0, "", "Ende", 2)
    Exit
    EndSelect
    WEnd

    [/autoit]
  • [autoit]


    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GUIListBox.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form2 = GUICreate("Mailadressen", 345, 254, 302, 218)
    ;~ GUISetIcon("D:\007.ico")
    $ListBox1 = GUICtrlCreateList("", 8, 8, 137, 201, BitOR($LBS_STANDARD, $LBS_EXTENDEDSEL))
    GUICtrlSetData(-1, "test@mail.de|[email='monster@mail.de'][/email]|autoit@mail.de")
    $Button1 = GUICtrlCreateButton(">>", 156, 15, 30, 25, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("<<", 157, 81, 31, 25, $WS_GROUP)
    $ListBox2 = GUICtrlCreateList("", 200, 8, 137, 201)
    GUICtrlSetState(-1, $GUI_FOCUS)
    $Button3 = GUICtrlCreateButton("&OK", 104, 225, 75, 25, $WS_GROUP)
    $Button4 = GUICtrlCreateButton("&Cancel", 184, 225, 75, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    $msg = 0
    dim $mails
    While $msg <> $GUI_EVENT_CLOSE
    $msg = GUIGetMsg()
    Select
    Case $msg = $Button1
    GUICtrlSetData($ListBox2, GUICtrlRead($ListBox1))
    Case $msg = $Button2
    $aIndex = _GUICtrlListBox_GetSelItems($ListBox2)
    $sText = _GUICtrlListBox_GetText($ListBox2, $aIndex[$aIndex])
    _GUICtrlListBox_DeleteString($ListBox2, $aIndex[$aIndex])
    Case $msg = $Button3
    $mails = ""
    $aItems = _GUICtrlListBox_GetCount($ListBox2)
    For $iI = 0 To $aItems
    $mails &= @LF & _GUICtrlListBox_GetText($ListBox2, $iI)
    $mails =StringReplace($mails,"0","")
    Next
    MsgBox(4160, "Information", "Ausgewählte Items: " & $mails)
    Case $msg = $Button4
    MsgBox(0, "", "Ende", 2)
    Exit
    EndSelect
    WEnd

    [/autoit]
  • Ich würde gerne die Dateien in eine beliebige Reihenfolge bringen, wie ist das wohl am einfachsten umzusetzen? Bei Mails ist es ja egal, nun möchte ich die die Folge beliebig zusammensetzen, sodass auf der rechten Seite eine andere Reihenfolge als auf der linken Seite steht, ist das möglich?

    Danke für jeden Tip


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

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GUIListBox.au3>
    #include <Array.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    Local $datein[1]
    $files = FileOpenDialog("", @WindowsDir & "\", "Bilder (*.jpg;*.bmp)", 4 )
    $datein = StringSplit($files,"|")
    $Form2 = GUICreate("Files "&$datein[1], 345, 254, 302, 218)
    $ListBox1 = GUICtrlCreateList("", 8, 8, 137, 201, BitOR($LBS_STANDARD, $LBS_EXTENDEDSEL))
    for $i = 2 to $datein[0]
    GUICtrlSetData(-1, $datein[$i])
    Next

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

    $Button1 = GUICtrlCreateButton(">>", 156, 15, 30, 25, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("<<", 157, 81, 31, 25, $WS_GROUP)
    $ListBox2 = GUICtrlCreateList("", 200, 8, 137, 201)
    GUICtrlSetState(-1, $GUI_FOCUS)
    $Button3 = GUICtrlCreateButton("&OK", 104, 225, 75, 25, $WS_GROUP)
    $Button4 = GUICtrlCreateButton("&Cancel", 184, 225, 75, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    $msg = 0
    dim $daten
    While $msg <> $GUI_EVENT_CLOSE
    $msg = GUIGetMsg()
    Select
    Case $msg = $Button1
    GUICtrlSetData($ListBox2, GUICtrlRead($ListBox1))
    Case $msg = $Button2
    $aIndex = _GUICtrlListBox_GetSelItems($ListBox2)
    $sText = _GUICtrlListBox_GetText($ListBox2, $aIndex[$aIndex])
    _GUICtrlListBox_DeleteString($ListBox2, $aIndex[$aIndex])
    Case $msg = $Button3
    $daten = ""
    $aItems = _GUICtrlListBox_GetCount($ListBox2)
    For $iI = 0 To $aItems
    $daten &= @LF & _GUICtrlListBox_GetText($ListBox2, $iI)
    $daten =StringReplace($daten,"0","")
    Next
    MsgBox(4160, "Information", "Ausgewählte Items: " & $daten)
    Case $msg = $Button4
    MsgBox(0, "", "Ende", 2)
    Exit
    EndSelect
    WEnd

    [/autoit]
  • Hallo Leute,
    ich habe meine Sortierung nun so geändert, das ich die Reihenfolge ändern kann, nur am Anfang wir der neu sortiert, sieht jemand den Fehler?
    Danke

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

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GUIListBox.au3>
    #include <Array.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    Local $datein[1]
    $files = FileOpenDialog("", @DesktopDir, "Bilder (*.jpg;*.bmp)", 4)
    $datein = StringSplit($files, "|")

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

    $pfad = $datein[1]
    _ArrayDelete($datein, 0)
    _ArrayDelete($datein, 0)

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

    $Form1 = GUICreate("Files " & $pfad, 474, 445, 192, 124)
    $List1 = GUICtrlCreateList("", 40, 32, 289, 357)
    For $i = 0 To UBound($datein) - 1
    ConsoleWrite($datein[$i])
    GUICtrlSetData($List1, $datein[$i])
    Next
    $Rauf = GUICtrlCreateButton("Rauf", 360, 80, 89, 33, $WS_GROUP)
    $Runter = GUICtrlCreateButton("Runter", 360, 136, 89, 33, $WS_GROUP)
    $Zeigen = GUICtrlCreateButton("Zeigen", 368, 352, 73, 33, $WS_GROUP)
    GUISetState(@SW_SHOW)

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

    $pfad = $datein[2]

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Rauf
    If _GUICtrlListBox_GetCurSel($List1) > -1 Then
    $postion = _GUICtrlListBox_GetCurSel($List1)
    $wert = _GUICtrlListBox_GetText($List1, $postion)
    $array_position = _ArraySearch($datein, $wert)
    _ArrayDelete($datein, $array_position)
    If $array_position = 0 Then
    $array_position = 0
    Else
    $array_position = $array_position - 1
    EndIf
    _ArrayInsert($datein, $array_position, $wert)
    _GUICtrlListBox_BeginUpdate($List1)
    _GUICtrlListBox_ResetContent($List1)
    For $i = 0 To UBound($datein) - 1
    ConsoleWrite($datein[$i] & @CRLF)
    _GUICtrlListBox_InsertString($List1, $datein[$i], $i)
    Next
    _GUICtrlListBox_EndUpdate($List1)
    EndIf
    Case $Runter
    If _GUICtrlListBox_GetCurSel($List1) > -1 Then
    $postion = _GUICtrlListBox_GetCurSel($List1)
    $wert = _GUICtrlListBox_GetText($List1, $postion)
    $array_position = _ArraySearch($datein, $wert)
    _ArrayDelete($datein, $array_position)
    If $array_position = 0 Then
    $array_position = 0
    Else
    $array_position = $array_position + 1
    EndIf
    _ArrayInsert($datein, $array_position, $wert)
    _GUICtrlListBox_BeginUpdate($List1)
    _GUICtrlListBox_ResetContent($List1)
    For $i = 0 To UBound($datein) - 1
    ConsoleWrite($datein[$i] & @CRLF)
    _GUICtrlListBox_InsertString($List1, $datein[$i], $i)
    Next
    _GUICtrlListBox_EndUpdate($List1)
    EndIf
    Case $Zeigen
    $daten = ""
    $aItems = _GUICtrlListBox_GetCount($List1)
    For $iI = 0 To $aItems
    $daten &= @LF & _GUICtrlListBox_GetText($List1, $iI)
    $daten = StringReplace($daten, "0", "")
    Next
    MsgBox(4160, "Information", "Ausgewählte Items: " & $daten)

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

    EndSwitch
    WEnd

    [/autoit]
  • Mit Arraysort geht es nun:

    [autoit]


    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_outfile=t:\sort_test.exe
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GUIListBox.au3>
    #include <Array.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    Local $datein[1]
    $files = FileOpenDialog("", @DesktopDir, "Bilder (*.jpg;*.bmp)", 4)
    $datein = StringSplit($files, "|")

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

    $pfad = $datein[1]
    _ArrayDelete($datein, 0)
    _ArrayDelete($datein, 0)
    _ArraySort($datein)
    $Form1 = GUICreate("Files " & $pfad, 474, 445, 192, 124)
    $List1 = GUICtrlCreateList("", 40, 32, 289, 357,BitOR($WS_BORDER, $WS_VSCROLL, $LBS_NOTIFY, $LBS_MULTIPLESEL, $LBS_SORT))
    For $i = 0 To UBound($datein) - 1
    ConsoleWrite($datein[$i])
    GUICtrlSetData($List1, $datein[$i])
    Next
    $Rauf = GUICtrlCreateButton("Rauf", 360, 80, 89, 33, $WS_GROUP)
    $Runter = GUICtrlCreateButton("Runter", 360, 136, 89, 33, $WS_GROUP)
    $Zeigen = GUICtrlCreateButton("Zeigen", 368, 352, 73, 33, $WS_GROUP)
    GUISetState(@SW_SHOW)

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

    $pfad = $datein[2]

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Rauf
    If _GUICtrlListBox_GetCurSel($List1) > -1 Then
    $postion = _GUICtrlListBox_GetCurSel($List1)
    $wert = _GUICtrlListBox_GetText($List1, $postion)
    $array_position = _ArraySearch($datein, $wert)
    _ArrayDelete($datein, $array_position)
    If $array_position > 0 Then $array_position = $array_position -1
    _ArrayInsert($datein, $array_position, $wert)
    _GUICtrlListBox_BeginUpdate($List1)
    _GUICtrlListBox_ResetContent($List1)
    For $i = 0 To UBound($datein) - 1
    ConsoleWrite($datein[$i] & @CRLF)
    _GUICtrlListBox_InsertString($List1, $datein[$i], $i)
    Next
    _GUICtrlListBox_EndUpdate($List1)
    _GUICtrlListBox_ClickItem($List1, $array_position)

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

    EndIf
    Case $Runter
    If _GUICtrlListBox_GetCurSel($List1) > -1 Then
    $postion = _GUICtrlListBox_GetCurSel($List1)
    $wert = _GUICtrlListBox_GetText($List1, $postion)
    $array_position = _ArraySearch($datein, $wert)
    _ArrayDelete($datein, $array_position)

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

    $array_position = $array_position + 1

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

    _ArrayInsert($datein, $array_position, $wert)
    _GUICtrlListBox_BeginUpdate($List1)
    _GUICtrlListBox_ResetContent($List1)
    For $i = 0 To UBound($datein) - 1
    ConsoleWrite($datein[$i] & @CRLF)
    _GUICtrlListBox_InsertString($List1, $datein[$i], $i)
    Next
    _GUICtrlListBox_EndUpdate($List1)
    _GUICtrlListBox_ClickItem($List1, $array_position)
    EndIf
    Case $Zeigen
    $daten = ""
    $aItems = _GUICtrlListBox_GetCount($List1)
    For $iI = 0 To $aItems
    $daten &= @LF & _GUICtrlListBox_GetText($List1, $iI)
    $daten = StringReplace($daten, "0", "")
    Next
    MsgBox(4160, "Information", "Ausgewählte Items: " & $daten)

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

    EndSwitch
    WEnd

    [/autoit]