ListView Probleme

  • Und zwar arbeite ich gerade an einer Termin Liste für HastyNotes. (per ListView)
    Probleme die auftreten:

    1. Wie kann man erfragen welches "Item" grad aktiv ist? (also markiert) Ohne alle abzufragen?
    2. Wie kann ich den Inhalt speichern/wiederherstellen? (GuiCtrlRead/Write auf die ListView?)

    Script:
    (Nicht wundern, ist nur der GUI teil + hinzufügen. NICHT fertig ;) )

    Spoiler anzeigen
    [autoit]


    Case $AddTermin
    $AddTerminGUI = GUICreate("", 421, 172, -1, -1, $WS_POPUP, $WS_EX_TOPMOST)
    $BetreffLabel = GUICtrlCreateLabel("Betreff:", 8, 8, 45, 20)
    $BetreffInput = GUICtrlCreateInput("Z.b. ""Treffen mit xxx""", 56, 8, 353, 20)
    $UhrzeitLabel = GUICtrlCreateLabel("Uhrzeit:", 8, 35, 48, 20)
    $UhrzeitInput = GUICtrlCreateInput("Z.b. ""20:15""", 56, 35, 121, 20)
    $DatumLabel = GUICtrlCreateLabel("Datum:", 8, 62, 46, 20)
    $DatumInput = GUICtrlCreateInput("Z.b. ""01.1.2001""", 56, 62, 121, 20)
    $KommentarLabel = GUICtrlCreateLabel("Kommentar (Optional):", 8, 89, 300, 20)
    $KommentarInput = GUICtrlCreateInput("", -1, 110, 400, 20)
    $HinzufuegenButton = GUICtrlCreateButton("Hinzufügen", 8, 136, 75, 25, $WS_GROUP)
    $AbbrechenButton = GUICtrlCreateButton("Abbrechen", 88, 136, 75, 25, $WS_GROUP)

    GuiSetState()

    While 1
    Switch GuiGetMsg()
    Case $GUI_EVENT_CLOSE
    GuiSetState(@SW_HIDE,$AddTerminGUI)
    ExitLoop
    Case $HinzufuegenButton
    $Betreff = GUICtrlRead($BetreffInput)
    $Uhrzeit = GUICtrlRead($UhrzeitInput)
    $Datum = GUICtrlRead($DatumInput)
    $Kommentar = GUICtrlRead($KommentarInput)
    GUICtrlCreateListViewItem($Betreff & "|" & $Uhrzeit & "|" & $Datum & "|" & $Kommentar, $Terminliste)
    GuiSetState(@SW_HIDE,$AddTerminGUI)
    ExitLoop
    Case $AbbrechenButton
    GuiSetState(@SW_HIDE,$AddTerminGUI)
    ExitLoop
    EndSwitch
    WEnd

    [/autoit]
  • 1. _GUICtrlListView_GetSelectionMark()

    2. Du willst den ganzen Inhalt in eine Datenbankspeichern? Oder nur den inhalt des markierten Items?
    _GUICtrlListView_GetItemTextArray sollte fürs Item helfen - für eine .txt Datenbank würde ich dir empfehlen nach Oscars Listviewbeispiel zu suchen.

    • Offizieller Beitrag

    1. Wie kann man erfragen welches "Item" grad aktiv ist? (also markiert) Ohne alle abzufragen?

    _GUICtrlListView_GetItemSelected()

    2. Wie kann ich den Inhalt speichern/wiederherstellen? (GuiCtrlRead/Write auf die ListView?)

    Verwende z.B. dieses: _GUICtrlListView_Export()

    NB: _GUICtrlListView_GetSelectionMark() gibt den Index des ersten Items von mehreren ausgewählten zurück.

  • Zu 1.
    Einziges Problem: Wie kann ich den Eintrag dann mit GUICtrlDelete den Eintrag löschen? (Man bekommt ja immer nur die Eintrags Nr)

    Zu 2.
    Jap hatte an eine .txt Datenbank gedacht.
    Werd dann mal nach Oscars Beispiel suchen

    • Offizieller Beitrag

    Einziges Problem: Wie kann ich den Eintrag dann mit GUICtrlDelete den Eintrag löschen? (Man bekommt ja immer nur die Eintrags Nr)

    Na du bist ja ein Scherzkeks :rofl: - Was benötigt denn _GUICtrlListView_DeleteItem() zum Löschen.... den Index ahhhhh ;)
    Zum Löschen von markierten Item(s) kannst du aber auch gleich _GUICtrlListView_DeleteItemsSelected() verwenden.