ListView

  • Hallo
    ich suche hilfe, unzwar scripte ich gerade einen account manager, jetzt komme ich nicht mehr weiter bei dem löschen eines items in meines listview, per button
    hier mein script:

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <File.au3>
    #include <GUIConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GUIListBox.au3>
    #include <GUIListView.au3>
    #include <StaticConstants.au3>
    #include <String.au3>
    #include <WindowsConstants.au3>
    #include <Array.au3>

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

    Opt("GUIOnEventMode", 1)
    Global $Item, $List

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

    ;====================================================================================================================================
    ;======================================================| Account Manager - Design |==================================================
    ;====================================================================================================================================

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

    $Account_Manager = GUICreate("Account Manager", 680, 380, -1, -1)
    GUISetBkColor(0xC0C0C0)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Account_ManagerClose")
    GUISetOnEvent($GUI_EVENT_MINIMIZE, "_Account_ManagerMinimize")
    GUISetOnEvent($GUI_EVENT_MAXIMIZE, "_Account_ManagerMaximize")
    GUISetOnEvent($GUI_EVENT_RESTORE, "_Account_ManagerRestore")
    $ID_Input = GUICtrlCreateInput("ID", 8, 8, 170, 21)
    $Passwort_Input = GUICtrlCreateInput("Passwort", 185, 8, 160, 21)
    $AddOptions = GUICtrlCreateCheckbox("", 350, 6, 17, 25)
    GUICtrlSetOnEvent($AddOptions, "_Check_AddOptions")
    GUICtrlSetTip(-1, "Optionale Daten")
    $Add_Account = GUICtrlCreatePic(@DesktopDir & "\Account Manager\Add-Test.jpg", 370, 5, 26, 26)
    GUICtrlSetOnEvent($Add_Account, "_Check_Add_Account")
    GUICtrlSetTip(-1, "Account hinzufügen")
    $Edit_Account = GUICtrlCreatePic(@DesktopDir & "\Account Manager\Edit-Test.jpg", 410, 5, 26, 26)
    GUICtrlSetOnEvent($Edit_Account, "_Edit_Account")
    GUICtrlSetTip(-1, "Account bearbeiten")
    $Delete_Account = GUICtrlCreatePic(@DesktopDir & "\Account Manager\Delete-Test.jpg", 450, 5, 26, 26)
    GUICtrlSetOnEvent($Delete_Account, "_Delete_Account")
    GUICtrlSetTip(-1, "Account löschen")
    $Import_Account = GUICtrlCreatePic(@DesktopDir & "\Account Manager\Import-Test.jpg", 490, 5, 26, 26)
    GUICtrlSetOnEvent($Import_Account, "_Import_Account")
    GUICtrlSetTip(-1, "Account(s) importieren")
    $Export_Account = GUICtrlCreatePic(@DesktopDir & "\Account Manager\Export-Test.jpg", 530, 5, 26, 26)
    GUICtrlSetOnEvent($Export_Account, "_Export_Account")
    GUICtrlSetTip(-1, "Account(s) exportieren")
    $Einstellungen = GUICtrlCreatePic(@DesktopDir & "\Account Manager\Einstellungen.jpg", 645, 3, 30, 30)
    GUICtrlSetOnEvent($Einstellungen, "_Einstellungen")
    GUICtrlSetTip(-1, "Einstellungen bearbeiten")
    $AccountList = GUICtrlCreateListView("ID|Passwort|E-Mail|Geheimfrage|Geheimantwort", 0, 35, 680, 318, -1)
    _GUICtrlListView_SetColumnWidth($AccountList, 0, 140)
    _GUICtrlListView_SetColumnWidth($AccountList, 1, 130)
    _GUICtrlListView_SetColumnWidth($AccountList, 2, 135)
    _GUICtrlListView_SetColumnWidth($AccountList, 3, 135)
    _GUICtrlListView_SetColumnWidth($AccountList, 4, 135)
    _GUICtrlListView_RegisterSortCallBack(GUICtrlGetHandle($AccountList))
    $EMail_Label = GUICtrlCreateLabel("E-Mail Adresse", 30, 43)
    $EMail_Input = GUICtrlCreateInput("", 110, 40, 200, 21)
    $Geheimfrage_Label = GUICtrlCreateLabel("Geheimfrage", 30, 68)
    $Geheimfrage_Input = GUICtrlCreateInput("", 110, 65, 200, 21)
    $Geheimantwort_Label = GUICtrlCreateLabel("Geheimantwort", 30, 93)
    $Geheimantwort_Input = GUICtrlCreateInput("", 110, 90, 200, 21)
    $Passwort_Hide = GUICtrlCreateCheckbox("Passwörter anzeigen", 555, 356)
    GUICtrlSetOnEvent($Passwort_Hide, "_Passwort_Hide")
    $Daten_Verschluesseln = GUICtrlCreateCheckbox("Daten verschlüsseln", 430, 356)
    _State($GUI_HIDE)
    Dim $Accounts
    _FileReadToArray("3hD29sWpOe9mNd7.kgj", $Accounts)
    If IsArray($Accounts) Then
    For $i = 1 To $Accounts[0]
    GUICtrlCreateListViewItem(_StringEncrypt(0, $Accounts[$i], "y#h0O", 3), $AccountList)
    Next
    EndIf
    GUISetState(@SW_SHOW)

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

    While 1
    Sleep(250)
    WEnd

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

    Func _Account_ManagerClose()
    Exit
    EndFunc

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

    Func _Account_ManagerMinimize()
    EndFunc

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

    Func _Account_ManagerMaximize()
    EndFunc

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

    Func _Account_ManagerRestore()
    EndFunc

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

    ;====================================================================================================================================
    ;===================================================| Account Manager - Quickleiste |================================================
    ;====================================================================================================================================

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

    Func _Add_Account()
    FileWriteLine("3hD29sWpOe9mNd7.kgj", _StringEncrypt(1, GUICtrlRead($ID_Input) & "|" & GUICtrlRead($Passwort_Input) & "|" & GUICtrlRead($EMail_Input) & "|" & GUICtrlRead($Geheimfrage_Input) & "|" & GUICtrlRead($Geheimantwort_Input), "y#h0O", 3))
    GUICtrlCreateListViewItem(GUICtrlRead($ID_Input) & "|" & GUICtrlRead($Passwort_Input) & "|" & GUICtrlRead($EMail_Input) & "|" & GUICtrlRead($Geheimfrage_Input) & "|" & GUICtrlRead($Geheimantwort_Input), $AccountList)
    MsgBox(0, "Account Manager - Erfolgreich", "Erfolgreich: Account erfolgreich hinzugefügt")
    EndFunc

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

    Func _Edit_Account()
    MsgBox(1, "Edit", "TestMsgBox zum Editieren")
    EndFunc

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

    Func _Delete_Account()
    MsgBox(1, "Delete", "TestMsgBox zum Deleten")
    EndFunc

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

    Func _Import_Account()
    MsgBox(1, "Import", "TestMsgBox zum Importieren")
    EndFunc

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

    Func _Export_Account()
    MsgBox(1, "Export", "TestMsgBox zum Exportieren")
    EndFunc

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

    Func _Einstellungen()
    MsgBox(1, "Einstellungen", "Jetzt müssten sich die Einstellungen öffnen...")
    EndFunc

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

    ;====================================================================================================================================
    ;======================================================| Account Manager - Checks |==================================================
    ;====================================================================================================================================

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

    Func _Check_Add_Account()
    GUICtrlSetState($ID_Input, $GUI_Disable)
    GUICtrlSetState($Passwort_Input, $GUI_Disable)
    GUICtrlSetState($AddOptions, $GUI_Disable)
    GUICtrlSetState($EMail_Input, $GUI_Disable)
    GUICtrlSetState($Geheimfrage_Input, $GUI_Disable)
    GUICtrlSetState($Geheimantwort_Input, $GUI_Disable)
    GUICtrlSetState($Add_Account, $GUI_Disable)
    GUICtrlSetState($Edit_Account, $GUI_Disable)
    GUICtrlSetState($Delete_Account, $GUI_Disable)
    GUICtrlSetState($Import_Account, $GUI_Disable)
    GUICtrlSetState($Export_Account, $GUI_Disable)
    GUICtrlSetState($Einstellungen, $GUI_Disable)
    GUICtrlSetState($Passwort_Hide, $GUI_Disable)
    GUICtrlSetState($Daten_Verschluesseln, $GUI_Disable)
    $ID = GUICtrlRead($ID_Input)
    $Passwort = GUICtrlRead($Passwort_Input)

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

    If StringLen($ID) < 32 Then
    If StringLen($Passwort) < 32 Then
    If StringLen($ID) < 3 Then
    MsgBox(0, "Account Manager - Fehler", "Fehler: Die ID ist zu kurz")
    Else
    If StringLen($Passwort) < 5 Then
    MsgBox(0, "Account Manager - Fehler", "Fehler: Das Passwort ist zu kurz")
    Else
    If $ID = "ID" or "" Then
    MsgBox(0, "Account Manager - Fehler", "Fehler: Bitte gib eine ID ein")
    Else
    If $Passwort = "Password" or "" Then
    MsgBox(0, "Account Manager - Fehler", "Fehler: Bitte gib ein Passwort ein")
    Else
    _Add_Account()
    EndIf
    EndIf
    EndIf
    EndIf
    Else
    MsgBox(0, "Account Manager - Fehler", "Fehler: Das Passwort ist zu lang")
    EndIf
    Else
    MsgBox(0, "Account Manager - Fehler", "Fehler: Die ID ist zu lang")
    EndIf

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

    GUICtrlSetState($ID_Input, $GUI_Enable)
    GUICtrlSetState($Passwort_Input, $GUI_Enable)
    GUICtrlSetState($AddOptions, $GUI_Enable)
    GUICtrlSetState($EMail_Input, $GUI_Enable)
    GUICtrlSetState($Geheimfrage_Input, $GUI_Enable)
    GUICtrlSetState($Geheimantwort_Input, $GUI_Enable)
    GUICtrlSetState($Add_Account, $GUI_Enable)
    GUICtrlSetState($Edit_Account, $GUI_Enable)
    GUICtrlSetState($Delete_Account, $GUI_Enable)
    GUICtrlSetState($Import_Account, $GUI_Enable)
    GUICtrlSetState($Export_Account, $GUI_Enable)
    GUICtrlSetState($Einstellungen, $GUI_Enable)
    GUICtrlSetState($Passwort_Hide, $GUI_Enable)
    GUICtrlSetState($Daten_Verschluesseln, $GUI_Enable)
    EndFunc

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

    Func _Check_AddOptions()
    If GUICtrlRead($AddOptions) = 1 Then
    For $i = 0 To 100 Step 2
    GUICtrlSetPos($AccountList, 0, 20 + $i, 680, 333 - $i)
    Next
    _State($GUI_SHOW)
    ElseIf GUICtrlRead($AddOptions) = 4 Then
    _State($GUI_HIDE)
    For $i = 0 To 100 Step 2
    GUICtrlSetPos($AccountList, 0, 135 - $i, 680, 218 + $i)
    Next
    EndIf
    EndFunc

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

    Func _State($State)
    GUICtrlSetState($EMail_Label, $State)
    GUICtrlSetState($EMail_Input, $State)
    GUICtrlSetState($Geheimfrage_Label, $State)
    GUICtrlSetState($Geheimfrage_Input, $State)
    GUICtrlSetState($Geheimantwort_Label, $State)
    GUICtrlSetState($Geheimantwort_Input, $State)
    EndFunc

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

    Func _Passwort_Hide()
    Dim $FileRead
    $FileRead = _FileReadToArray("3hD29sWpOe9mNd7.kgj", $Accounts)
    If IsArray($FileRead) Then
    For $i = 1 To $FileRead[0]
    $Split = StringSplit($Item[$i], '|')
    $List[$i] = GUICtrlCreateListViewItem($i & "|" & $Split[1] & "|*******|" & $Split[3] & "|" & $Split[4] & "|" & $Split[5], $AccountList)
    Next
    EndIf
    EndFunc

    [/autoit]

    dürfte deutlich sein...
    MFG und DANKE
    (icq 408 478 963)

  • ok,habe das gefunden:

    [autoit]

    GUICtrlSendMsg($AccountList, $LVM_DELETEITEM, Number(ControlListView("", "", $AccountList, "GetSelected")), 0)

    [/autoit]


    damit klappts, es werden ja immer beim hinzufügen die daten in einer datei abgespeichert, wie ist es möglich das die ausgewählten zeilen im listview, auch in der datei gelöscht werden (NICHT ALLES - NUR DAS AUSGEWÄHLTE)
    MFG und DANKE

  • das ganze ist ganz und gar nicht deutlich. Du hast in deinem Skript keinen einzigen Button, anstelle dessen benutzt Pic's lädst diese aber nicht mit hoch. Meinst du jemand macht sich die Mühe und sucht sich Bilder zusammen damit er dein Skript testen kann?

    Warum du den umständlichen Weg

    [autoit]

    GUICtrlSendMsg

    [/autoit]

    nimmst anstatt

    [autoit]

    _GUICtrlListView_DeleteItemsSelected

    [/autoit]

    erschliest sich mir auch nicht. Nach dem löschen eines Items in der Listview kannst du ja dein Array durchgehen und wenn es nicht in der Listview eingetragen ist löscht du es auch aus dem Array. Das Array schreibst du (am Programmende) zurück in die Datei.

    mfg autoBert

  • Wieso fügst du die Bilder nicht einfach als BinaryCode einer EXE Hinzu..
    so ist das einfach blöd für uns dein Script zu testen usw..

    Gruß Marvin