Funktionsreferenz

GUICtrlCreateListView

Erstellt eine Liste (mit ein oder mehreren Spalten) für die GUI (ListView-Control)

GUICtrlCreateListView ( "text", left, top [, width [, height [, style [, exStyle]]]] )

 

Parameter

text Definition der Spaltenüberschriften. Die Spalten werden durch ein Trennzeichen getrennt, welches mit Opt("GUIDataSeparatorChar") festgelegt werden kann.
left Die linke Seite des Controls. Wird -1 verwendet, dann wird left mit Hilfe von GUICoordMode berechnet.
top Die Oberkante des Controls. Wird -1 verwendet, dann wird top mit Hilfe von GUICoordMode berechnet.
width [optional] Die Breite des Controls (voreingestellt ist die zuvor verwendete Breite).
height [optional] Die Höhe des Controls (voreingestellt ist die zuvor verwendete Höhe).
style [optional] Legt den Stil des Controls fest. Siehe Anhang GUI-Stile für Controls.

Standard (-1) : $LVS_SHOWSELALWAYS, $LVS_SINGLESEL
Erzwungener Stil : $LVS_REPORT
exStyle [optional] Legt den erweiterten Stil des Controls fest. Siehe Tabelle der erweiterten Stile oder Tabelle der erweiterten ListView Stile.

 

Rückgabewert

Erfolg: Gibt die Identifikationsnummer (Control-ID) des neuen Controls zurück.
Fehler: Gibt 0 zurück.

 

Bemerkungen

Um dem Control Listeneinträge hinzuzufügen ist GUICtrlCreateListViewItem zu verwenden.

Das ListView wird immer so aussehen wie die "Detail"-Ansicht des Explorers (LVS_REPORT Stil wird erzwungen).
Die anfängliche Spaltenbreite kann kontrolliert werden, indem Leerzeichen in die Spaltenüberschriften eingefügt werden. Die Spaltenbreite kann durch GUICtrlCreateListViewItem auf die Breite der Einträge erweitert werden. Bis zu etwa 25 Zeichen passen in eine Spalte. Werden die Einträge durch GUICtrlSetDate verändert, wird keine Größenanpassung vorgenommen.

Um ein ListView mit Icons, kleinen Icons oder in Listenform zu erstellen, ist nach dem Erstellen GUICtrlSetStyle mit den Stilen $LVS_ICON, $LVS_LIST oder $LVS_SMALLICON zu verwenden.

Das Sortieren der Listeneinträge durch Klick auf die Spaltenüberschriften (wie im Explorer) ist zur Zeit noch nicht implementiert.

Um eine ganze Zeile durch einen Farbbalken auszuwählen ist der erweiterte Stil LVS_EX_FULLROWSELECT zu verwenden.

Um weitere Stile zusätzlich zum Standardstil zu benutzen, ist BitOr($GUI_SS_DEFAULT_LISTVIEW, newstyle,...) zu verwenden.

Um die oben angegebenen Werte verwenden zu können, muss #include <ListViewConstants.au3> in das Skript eingefügt werden.

Das spezielle Flag $GUI_BKCOLOR_LV_ALTERNATE kann zusammen mit dem ListView-Control dazu genutzt werden, den ListviewItems-Zeilen abwechselnd andere Hintergrundfarben zu geben.
Die ungeraden Zeilen bekommen die Farbe, welche durch GUICtrlSetBkColor des ListView-Controls zugewiesen wird.
Die geraden Zeilen bekommen die Farbe, welche durch GUICtrlSetBkColor des ListViewItem Controls zugewiesen wird.

Ein ListView-Control muss immer mindestens eine Spalte beinhalten.

- - - - - - - - Erklärung der Controls - - - - - - - -

 

Verwandte Funktionen

GUICtrlCreateListViewItem, GUICtrlRegisterListViewSort, GUICoordMode (Option), GUICtrlSetData, GUIGetMsg, GUIDataSeparatorChar (Option)

 

Beispiel


#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Opt('MustDeclareVars', 1)

Example()

Func Example()
    Local $listview, $button, $item1, $item2, $item3, $input1, $msg

    GUICreate("Listview Einträge", 220, 250, 100, 200, -1, $WS_EX_ACCEPTFILES)
    GUISetBkColor(0x00E0FFFF) ; Ändert die Hintergrundfarbe
   
    $listview = GUICtrlCreateListView("Spalte1  |Spalte2|Spalte3", 10, 10, 200, 150);,$LVS_SORTDESCENDING)
    $button = GUICtrlCreateButton("Wert?", 75, 170, 70, 20)
    $item1 = GUICtrlCreateListViewItem("Eintrag2|Spalte22|Spalte23", $listview)
    $item2 = GUICtrlCreateListViewItem("Eintrag1|Spalte12|Spalte13", $listview)
    $item3 = GUICtrlCreateListViewItem("Eintrag3|Spalte32|Spalte33", $listview)
    $input1 = GUICtrlCreateInput("", 20, 200, 150)
    GUICtrlSetState(-1, $GUI_DROPACCEPTED) ; Erlaubt drag&drop
    GUISetState()
    GUICtrlSetData($item2, "EINTRAG1")
    GUICtrlSetData($item3, "||SPALTE33")
    GUICtrlDelete($item1)

    Do
        $msg = GUIGetMsg()

        Select
            Case $msg = $button
                MsgBox(0, "Listview Einträge", GUICtrlRead(GUICtrlRead($listview)), 2)
            Case $msg = $listview
                MsgBox(0, "Listview", "angeklickt=" & GUICtrlGetState($listview), 2)
        EndSelect
    Until $msg = $GUI_EVENT_CLOSE
EndFunc   ;==>Example