ListView Groups - ein kleines Beispiel

  • Mit einem Doppelklick auf den Titel der Gruppe kann man diese öffnen/schließen...

    Einmal editiert, zuletzt von Bitnugger (4. Juni 2018 um 19:54)

  • Sehr cool und danke fürs teilen.

    Mit den Listeview Gruppen kämpfe ich auch von Zeit zu Zeit und da ist dein Beispiel sicher mal hilfreich. :)

    P.S.

    Hast du ne Ahnung ob man auch leere Gruppen ohne Items erstellen und anzeigen kann? Ich verwende die Listview Gruppen für einen Editor für INI Dateien und sobald das letzte Key/Value Paar gelöscht wird muss die ganze Gruppe gelöscht werden.

  • Hast du ne Ahnung ob man auch leere Gruppen ohne Items erstellen und anzeigen kann?

    Erstellen kannst du Groups jederzeit, aber angezeigt werden sie erst, wenn sich mindestens 1 Item in der Group befindet. Wird das letzte Item aus der Group gelöscht/verschoben, wird die Group ausgeblendet. Als Workaround kannst du aber ein Item ohne oder mit einem speziellen Text hinzufügen und das Flag für die Group dann auf $LVGS_COLLAPSED setzen, dass du wieder löscht, sobald ein weiteres Item hinzukommt.

    Die Groups kannst du in etwa mit einem Schreibblock vergleichen... was kümmert es dich, wie viele leere Blätter dieser noch enthält, solange es mehr als 0 sind? Du kannst also z. B. 200 Groups anlegen... und benutzt aber nur 25... und wenn du noch mehr brauchst, legst du einfach noch welche an. Hauptsächlich relevant ist doch nur, ob etwas in der Group ist oder nicht...

    Edit: Hier noch ein Beispiel, bei dem du sehen kannst, dass Groups erst angezeigt werden, wenn mindestens 1 Item in der Group ist... das wird hinzugefügt, wenn du den ersten Doppelklick auf einen Group-Titel machst.

    2 Mal editiert, zuletzt von Bitnugger (4. Juni 2018 um 21:17)

  • ich kämpfe mich gerade mit dem Thema Listvie und Groups durch.

    Kann man Groups auch per drag an Drop in ein Zweites Listview kopieren und ausschneiden? Mit und ohne Groups?

    Ich möchte gerne Groups mit verschiedenen positionen in Listview 1 anlegen.

    Danach möchte ich von Listview 1 die Group per Mouse drag in Listview 2 kopieren, dabei soll nur der Inhalt der Group kopiert werden an die Positionen wo die Mouse losgelassen wird.

  • Hallo kra88

    Hm, was ist deine Frage Listview (google:) Drag&Drop oder die ListviewItems ermitteln? Das letztere wüsste ich auch nicht. Aber wenn du ja selbst die Groups erstellst, kannst du diese Info für jedes Item doch auch einfach in einem weiteren Array speichern.

    Grüße autoiter

  • Kann man Groups auch per drag an Drop in ein Zweites Listview kopieren und ausschneiden? Mit und ohne Groups?

    Generell ja, doch dafür gibt es keine nativen Funktionen in AutoIt und ich kenne auch keine AutoIt-UDF, die das ermöglicht. Mir fehlt momentan aber leider die Zeit, um mich eingehender mit dem Thema zu befassen.

    Hier Additional functions for AHK ListView controls kann man evtl. einige Stellen abkupfern.

    Ich möchte gerne Groups mit verschiedenen positionen in Listview 1 anlegen.

    Dafür gibt es in AutoIt auch keine direkte Möglichkeit. Als Workaround könntest du aber Groups mit leerem Titel mit _GUICtrlListView_InsertGroup einfügen. Diese müssen mindestens 1 Item enthalten, damit sie angezeigt werden.

    Um alle Groups frei zu positionieren, wirst du wohl nicht drum herum kommen, für jede Group ein eigenes ListView (ohne Header) und den Header separat zu erstellen.

    Danach möchte ich von Listview 1 die Group per Mouse drag in Listview 2 kopieren, dabei soll nur der Inhalt der Group kopiert werden an die Positionen wo die Mouse losgelassen wird.

    Dafür gibt es in AutoIt auch keine direkte Möglichkeit. Als Inspiration für eine eigene Funktion würde ich in der Hilfe nach *drag* suchen.

    Einmal editiert, zuletzt von Bitnugger (5. Juni 2018 um 20:00)