Seite 1 von 3
ListIconGadget sortieren
Verfasst: 26.04.2005 11:29
von Freshi
Hallöle,
kurze (und vielleicht doofe) Frage:
Ich möchte ein ListIconGadget beim clicken auf eine Spaltenüberschrift nach dieser Spalte gerne sortieren.
Welchen Event muss ich denn da abfragen um den Click auf die Spaltenüberschrift festzustellen?!
Grüße,
Freshi
Re: ListIconGadget sortieren
Verfasst: 26.04.2005 12:32
von Danilo
Freshi hat geschrieben:Ich möchte ein ListIconGadget beim clicken auf eine Spaltenüberschrift nach dieser Spalte gerne sortieren.
Welchen Event muss ich denn da abfragen um den Click auf die Spaltenüberschrift festzustellen?!

Da das nicht mit wenigen Worten zu erklären ist, hier mal
ein Verweis auf einen Code der das zeigt:
http://www.purearea.net/pb/CodeArchiv/G ... tArrows.pb
Am besten Du lädst Dir gleich das ganze CodeArchiv runter,
vielleicht findest Du noch mehr solche Codes zum ListIconGadget.

Nachfrage zur Sortierung
Verfasst: 03.10.2005 13:38
von Wisimita
Hallo Danilo,
ich bin ganz neu hier im Forum.
Mit der oben vorgestellten Sortiermethode habe ich auch schon für einen Anfänger gute Erfolge erzielt und diese Routine in ein Programm von mir eingefügt.
Es werden aber nicht alle 10 Spalten auf- oder absteigend sortiert, sondern nur jeweils 2.
In einer einfachen Form würde es mir reichen, wenn die 10 Spalten von links nach rechts absteigend sortiert würden, also wenn in einer Spalte eine Zahl mehrmals steht, dass in den folgenden Spalten ebenfalls sortiert wird, hier einmal als Beispiel mit 5 Spalten:
Code: Alles auswählen
100 100 99 23 12
100 99 76 12 4
100 16 14 13 10
60 121 88 3 2
60 6 99 12 9
usw.
Das dürfte für Euch Profis verhältnismäßig leicht sein und ich bin sicher, dass Ihr mir helfen könnt.
Geht das aber auch, wenn ich in der Hauptsache nach der dritten oder einer anderen Spalte sortieren will, dass dann alle anderen Spalten von links nach rechts ebenfalls wie gewünscht sortiert werden?
Viele Grüsse
Wisimita
Verfasst: 03.10.2005 13:39
von Ynnus
Danilo wirst du hier wohl nicht mehr antreffen, das Thema ist mehrere Monate alt und er treibt sich hier nur noch selten, wenn überhaupt, rum...
Verfasst: 03.10.2005 13:53
von Wisimita
Hallo Sunny,
ich habe Danilo nur angesprochen, weil er auf dieses Thema weiter oben bereits geantwortet hatte.
Mir ist es also ebenso Recht, wenn mir jemand anderes helfen kann!
Gruß
Wisimita
Verfasst: 03.10.2005 14:07
von Thorsten1867
Verfasst: 23.10.2005 17:34
von Wisimita
Hallo Thorsten,
als blutiger Anfänger habe ich eine Weile gebraucht, bis ich die Routinen überhaupt ans Laufen bekommen habe.
Wenn ich alles richtig gemacht habe, ist das aber nicht das, was ich suche.
Ich möchte die Daten in einem ListIcon für alle Spalten reihenweise sortiert haben, wenn es nicht anders geht, dann abwärts von links nach rechts, also so, dass die gesamte Zeile mit allen Spalten richtig einsortiert wird. Das gesamte ListIcon besteht aus 10 Spalten mit 9 Ganzzahlen und einer Spalte mit Prozentzahlen.
Beispielweise bei Excel ist so eine Sortierung kein Problem.
Vielleicht kann mir jemand helfen, wenn möglich aber, für Anfänger verständlich.
Gruß
Wisimita
Verfasst: 23.10.2005 18:58
von Thorsten1867
Das mit den einzelnen Spalten muss ich übersehen haben. Zeilenweise wäre kein Problem.
Solange es ein Klick in den ListIconHeader sein muss, muss ich passen, da eine solche Abfrage schon sehr in die Internas geht (WindowsCallback).
Mit entsprechenden Buttons stattdessen, müsste das Problem lösbar sein.
Verfasst: 23.10.2005 20:56
von Wisimita
Thorsten1867 hat geschrieben:Das mit den einzelnen Spalten muss ich übersehen haben. Zeilenweise wäre kein Problem.
Solange es ein Klick in den ListIconHeader sein muss, muss ich passen, da eine solche Abfrage schon sehr in die Internas geht (WindowsCallback).
Mit entsprechenden Buttons stattdessen, müsste das Problem lösbar sein.
Hallo Thorsten,
danke für die schnelle Antwort!
Vergessen wir erst einmal meine Idee mit dem Klick auf die einzelnen Spalten.
Es würde mir reichen, wenn zeilenweise richtig sortiert werden könnte, und zwar abwärts.
Beispiel:
100 110 200 400 155 301
100 220 100 290 555 222
100 110 200 401 168 229
Eine richtige Sortierung sähe so aus:
100 220 100 290 555 222
100 110 200 401 168 229
100 110 200 400 155 301
In Spalte 1 sind alle Zahlen gleich groß, in der ersten Zeile ist die Zahl in der zweiten Spalte größer als die beiden anderen, Zeile 2 ist in Spalte 4 größer als in der dritten Zeile.
Wenn so sortiert werden kann, ist das vollkommen ausreichend.
Gruß
Wisimita
Verfasst: 23.10.2005 21:46
von Thorsten1867
Zum Sortieren müsste man das ListIconGadget auslesen und in verschiede Arrays schreiben:
Code: Alles auswählen
Dim Spalte0(2) : Dim Spalte1(2) : Dim Spalte2(2) : .......
For r = 0 To 2
Spalte0(r) = GetGadgetItemText(#MyList, r, 0)
Spalte1(r) = GetGadgetItemText(#MyList, r, 1)
Spalte2(r) = GetGadgetItemText(#MyList, r, 2)
........
Next r
Dann könnte man die Arrays außer Spalte1() sortieren und in die Liste zurückschreiben (vorher natürlich leeren).
Code: Alles auswählen
SortArray(Spalte1(), 1) : SortArray(Spalte2(), 0) : .......
Code: Alles auswählen
ClearGadgetItemList(#MyList)
For r = 0 To 2
AddGadgetItem(#MyList,-1,Spalte0(r)+Chr(10)+Spalte1(r)+Chr(10)+Spalte2(r)+........)
Next r
Dim Spalte0(0) : Dim Spalte1(0) : .......
Ich hoffe, ich abe auf die Schnelle keine Fehler eingebaut.
