TreeView: alphabetisch- und numerisch sortiert



  • Hi (BCB-Hilfe hat mir nicht helfen können),

    ich habe Sortierprobleme. Ich habe nen TreeView. Auf Level 0 befinden sich Knoten, z.B. Die Bezeichnungen von Zahlengruppen, die alphabetisch sortiert sein sollen. Jede Zahlengruppe hat jetzt ne Anzahl von Zahlen auf Level 1, die numerisch sortiert sein sollen. Wie kann ich das machen? Rufe ich AlphaSort() auf, sortiert er mir natürlich auch die Zahlen alphanumerisch, das will ich aber nicht. Irgendwie muss es über Compare gehen, ich weiß nur nicht wie!



  • Das geht exakt so wie in der Hilfe beschrieben:

    Du implementierst OnCompare, vergleichst Node1 mit Node2 gemäss deinen Kriterien und je nach dem gibst du den pasenden Rückgabewert zurück.

    -junix



  • Äh, ich habe die Hilfe ja auch gelesen, aber nicht verstanden, wie ich das auf mein Problem übertragen kann, sorry.



  • ? Die Aussage versteh ich nicht. Was hast du denn an meinem Post und den Hilfetexten nicht verstanden? - wenn du das was in der Hilfe steht nicht auf dein Problem übertragen kannst dann hast du offensichtlich nicht verstanden um was es geht. Was bereitet dir mühe?

    -junix



  • Sorry, steh mit dem Treeview auf Kriegsfuß. Brauchst auch nicht mehr zu antworten, wenns Dich nervt!

    Ok, konkret:

    wann wird OnCompare aufgerufen? Bei TreeView->AlphaSort()??

    Aber dann wird doch alphabetisch sortiert!

    BCB-Hilfe:

    In einer Ereignisbehandlungsroutine für OnCompare kann die Sortierreihenfolge der Knoten im Baumdiagramm angepaßt werden. Der Parameter Compare funktioniert nach folgendem Schema: ein negativer Wert zeigt an, daß Node1 kleiner als Node2 ist. Der Wert 0 sagt aus, daß Node1 auf gleicher Ebene liegt wie Node2. Ein positiver Wert zeigt an, daß Node1 größer ist als Node2. Wenn Sie keine Ereignisbehandlungsroutine für OnCompare vorsehen, werden die Baumdiagrammknoten alphabetisch nach ihren Beschriftungen sortiert.

    BCB-Hilfe-ENDE:

    Schön und gut, über Compare kann man den Level des Knoten feststellen, d.h. wenn ich auf Level 0 bin (Zahlengruppe) kann ich alphabetisch, wenn ich auf Level 1 bin (Zahlen) numerisch sortieren. Ich weiß aber nicht, wie ich in Compare konkret angeben kann wie die Knoten sortiert werden, also alphanumerisch oder numerisch! Es werden doch immer nur 2 Knoten verglichen!? Es sollen aber alle Elemente einer Ebene sortiert werden! Ich finde, ein Beispiel wäre in der Hilfe hilfreich gewesen!



  • Was heisst OnCompare auf deutsch?

    Richtig. "Beim Vergleichen". Daraus lässt sich schliessen, dass onCompare wohl jedesmal aufgerufen wird, wenn ein Vergleich zwischen zwei nodes ausgeführt wird. Alles weitere lässt sich durch einen einfachen Test bestätigen (-;

    Der erste Schritt (sich informieren) ist zwar richtig, aber man sollte die Informationen auch interpretieren und vielleicht die aus den Interpretationen entstandenen Theorien einfach mal testen? (-;

    -junix



  • Ok, habs am Wochenende hinbekommen, durch Ausprobieren. Finde aber trotzdem, dass die BCB-Hilfe in diesem Punkt ein kleines Beispiel hätte liefern können. In vielen Punkten ist die BCB-Hilfe OK, aber in vielen doch etwas dünn. Aber vielen Dank für DEINE Hilfe!


Anmelden zum Antworten