Hallo Ihr lieben,
ich habe eine ListView, welche mit unsortieren Daten aus einer Ini Datei gefüttert wird. Vor Anzeige soll diese einmalig sortiert werden, erst Spalte 1, dann Spalte 2, dann Spalte 3 wie es in Excel möglich ist.
Ist das möglich? Wenn ja wie?
Ich habe mal das Bsp aus der Hilfe um ein paar Fantasiedaten erweitert :
#include <GUIConstantsEx.au3>
#include <MsgBoxConstants.au3>
#include <WindowsConstants.au3>
#include <ListViewConstants.au3>
#include <GuiConstantsEx.au3>
#include <GuiListView.au3>
Example()
Func Example()
GUICreate("listview items", 620, 450, 100, 200, -1)
Local $idListview = GUICtrlCreateListView("Hauptkategorie|Unterkategorie|Betreff ", 10, 10, 600, 250)
Local $idButton = GUICtrlCreateButton("Value?", 75, 370, 70, 20)
_GUICtrlListView_SetColumnWidth($idListview, 0, 150)
_GUICtrlListView_SetColumnWidth($idListview, 1, 150)
_GUICtrlListView_SetColumnWidth($idListview, 2, 275)
; Unsortierte Daten
Local $idItem1 = GUICtrlCreateListViewItem("Fleisch|Pute|Gut durchbraten", $idListview)
Local $idItem2 = GUICtrlCreateListViewItem("Gemüse|Karotten|Färbt die Haut", $idListview)
Local $idItem3 = GUICtrlCreateListViewItem("Obst|Brombeeren|Heißen Blackberrys in English", $idListview)
Local $idItem4 = GUICtrlCreateListViewItem("Gemüse|Karotten|Augenfreundlich", $idListview)
Local $idItem5 = GUICtrlCreateListViewItem("Obst|Apfel|Nicht zu vergleichen mit Birnen", $idListview)
Local $idItem6 = GUICtrlCreateListViewItem("Obst|Apfel|An Apple a day...", $idListview)
Local $idItem7 = GUICtrlCreateListViewItem("Fleisch|Rind|Die Flamme darf das Fleisch nur Küssen", $idListview)
Local $idItem8 = GUICtrlCreateListViewItem("Fleisch|Pute|Auf gute Bioqualität achten", $idListview)
Local $idItem9 = GUICtrlCreateListViewItem("Gemüse|Gurken|Scheibchenweise ein Genuss", $idListview)
Local $idInput = GUICtrlCreateInput("", 20, 300, 150)
GUISetState(@SW_SHOW)
; Liste sortieren
_GUICtrlListView_SimpleSort ( $idListview, True, 0 )
; Loop until the user exits.
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ExitLoop
Case $idButton
MsgBox($MB_SYSTEMMODAL, "listview item", GUICtrlRead(GUICtrlRead($idListview)), 2)
Case $idListview
MsgBox($MB_SYSTEMMODAL, "listview", "clicked=" & GUICtrlGetState($idListview), 2)
EndSwitch
WEnd
EndFunc ;==>Example
Alles anzeigen
Ich habe schon eine Weile gegoogelt, bekomme aber nur für mich unverständliche Scripts. Da geht es immer nur darum auf die Spalten überschriften klicken zu können und danach zu sortieren wie es z.b. der Explorer macht. Das will ich aber gar nicht. Nur einmalig sortiert werden soll sie. Die ListView wird später als kleinen Teil eines größeren Script eingefügt, welches über den MessageLoop läuft. Das sollte wenn möglich so beibehalten werden, denn laut Hilfe soll man ja die EventModes nicht mischen.
Ich freue mich auf eure Ideen.
mfg
Martin