AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Einträge im TreeView sortieren

Ein Thema von eddy · begonnen am 20. Apr 2004 · letzter Beitrag vom 27. Apr 2004
Antwort Antwort
Benutzerbild von eddy
eddy

Registriert seit: 3. Jan 2003
Ort: Sachsen
573 Beiträge
 
Delphi 5 Professional
 
#1

Einträge im TreeView sortieren

  Alt 20. Apr 2004, 17:54
Hallo Leute,

irgendwie klemmt's mit meiner Logik. Ich habe TreeView.SortTyp auf stBoth gesetzt und war der Meinung, daß meine Einträge automatisch alphabetisch sortiert werden. Aber mein TreeView zeigt mir die kalte Schulter und sortiert sich nicht.

Kann mir jemand sagen, wie ich die Sortierung der Ebenen und Unterebenen realisieren kann?

mfg
eddy
  Mit Zitat antworten Zitat
Benutzerbild von eddy
eddy

Registriert seit: 3. Jan 2003
Ort: Sachsen
573 Beiträge
 
Delphi 5 Professional
 
#2

Re: Einträge im TreeView sortieren

  Alt 26. Apr 2004, 08:55
Hallo Leute,

nur zur Sicherheit, daß ich nicht versehentlich vergessen wurde.

Keiner 'ne Idee, wie man den TreeView sortieren kann?

mfg
eddy
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#3

Re: Einträge im TreeView sortieren

  Alt 26. Apr 2004, 09:00
Moin!

Wer die OH liest, ist klar im Vorteil...

Zitat von OH von Delphi 5:
Die Methode CustomSort ermöglicht eine benutzerdefinierte Sortierung der Knoten im Baumdiagramm.

type TTVCompare = function(lParam1, lParam2, lParamSort: Longint): Integer stdcall;

function CustomSort(SortProc: TTVCompare; Data: Longint): Boolean;

Beschreibung

Bei einer Sortierung der Baumknoten mit CustomSort wird die Reihenfolge durch den Parameter SortProc bestimmt. Die Parameter lParam1 und lParam2 können für den Vergleich in den Typ TTreeNode umgewandelt werden. Der Parameter lParamSort der Sortierroutine ist der Wert des Parameters Data von CustomSort. Die Sortierroutine muß einen negativen Wert zurückgeben, wenn lParam1 vor lParam2 eingeordnet werden soll. Der Rückgabewert 0 gibt identische Werte an. Ein positiver Rückgabewert gibt an, daß lParam1 nach lParam2 eingeordnet werden soll.

Wenn der Parameter SortProc den Wert nil hat, wird die Standardmethode AlphaSort aufgerufen.

Hinweis

Wenn die Knoten des Baumdiagramms automatisch sortiert werden sollen (z.B. nach Änderungen des Benutzers), verwenden Sie die Eigenschaft SortType und implementieren eine Ereignisbehandlungsroutine für OnCompare.
Vor allem der letzte Teil (der Hinweis) sollte entscheident für deine Frage sein.

MfG
Muetze1
  Mit Zitat antworten Zitat
Killer

Registriert seit: 11. Nov 2003
152 Beiträge
 
Delphi 6 Enterprise
 
#4

Re: Einträge im TreeView sortieren

  Alt 26. Apr 2004, 09:02
Hallo

Oder schau dir mal das hier an.
  Mit Zitat antworten Zitat
Benutzerbild von eddy
eddy

Registriert seit: 3. Jan 2003
Ort: Sachsen
573 Beiträge
 
Delphi 5 Professional
 
#5

Re: Einträge im TreeView sortieren

  Alt 26. Apr 2004, 10:30
Hallo Muetze1,

Du hast geschrieben:
Zitat:
Wer die OH liest, ist klar im Vorteil...
Aber Du irrst!!

Nur wer damit etwas anfangen kann, ist im Vorteil.

Und da mich das nicht weiterbrachte, habe ich mich hier im Formum gemeldet.

Mal sehen, ob ich aufgrund Deiner Hinweise noch ein Beispiel finde, mit dem ich was anfangen kann. Immerhin hast Du mir die Richtung, in der ich Suchen muß, gewiesen.

mfg
eddy
  Mit Zitat antworten Zitat
Benutzerbild von eddy
eddy

Registriert seit: 3. Jan 2003
Ort: Sachsen
573 Beiträge
 
Delphi 5 Professional
 
#6

Re: Einträge im TreeView sortieren

  Alt 26. Apr 2004, 10:30
Hallo Killer,

danke für den Link. Ich schau mir das mal an. MyCustomSortProc sieht ja gut aus, muß es aber erst noch probieren.


mfg
eddy
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#7

Re: Einträge im TreeView sortieren

  Alt 26. Apr 2004, 13:08
Moin!

Ich frage mich, was man an dem Satz
Zitat:
Wenn die Knoten des Baumdiagramms automatisch sortiert werden sollen (z.B. nach Änderungen des Benutzers), verwenden Sie die Eigenschaft SortType und implementieren eine Ereignisbehandlungsroutine für OnCompare.
nicht verstehen sollte. Ich sehe das so:

1. du benutzt die Eigenschaft SortType und somit trifft für die zu, das du das Ereignis OnCompare benutzen muss, um zu sortieren.
2. Ok, dann lege ich mir also einen Routine für das OnCompare Ereignis des TTreeView an
3. das OnCompare Ereignis gibt einem die beiden zu vergleichenden Nodes an und das Ergebnis muss an Compare zurückgegeben werden.

Delphi-Quellcode:
procedure TForm1.TreeView1Compare(Sender: TObject; Node1, Node2: TTreeNode; Data: Integer; var Compare: Integer);
Begin
  Compare := AnsiCompareStr(Node1.Text, Node2.Text);
End;
das war's...

Und nochwas: für eine einfach alphabetische Sortierung kannst du auch einmal die Methode AlphaSort aufrufen des TreeViews...

MfG
Muetze1
  Mit Zitat antworten Zitat
Benutzerbild von eddy
eddy

Registriert seit: 3. Jan 2003
Ort: Sachsen
573 Beiträge
 
Delphi 5 Professional
 
#8

Re: Einträge im TreeView sortieren

  Alt 27. Apr 2004, 08:48
Hallo Muetze1,

vielleicht bin ich ja nur schwer von Begriff, aber bei mir wird nichts sortiert.

SortType ist auf stBoth gestellt, OnCompare habe ich mit der von Dir geposteten Zeile gefüllt.

Und wie wird jetzt die Sortierung ausgelöst?

mfg
eddy
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#9

Re: Einträge im TreeView sortieren

  Alt 27. Apr 2004, 11:34
Moin!

Wenn du neue Knoten hinzufügst, dann werden die automatisch sortiert eingefügt. Wenn du Knoten schon zur Designzeit hinzufügst, dann werden diese nicht sortiert. SortType kümmert sich mit Hilfe von OnCompare() um das automatische sortieren wenn Änderungen an Knoten vorgenommen werden oder neue hinzugefügt werden.

Du kannst die Sortierung auch nachträglich auslösen, wenn du SortType auf stNone stellst und danach wieder auf stBoth.

MfG
Muetze1
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:07 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz