TreeView Sort Top Level Nodes

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Spike1977
Beiträge: 15
Registriert: Mo 13. Nov 2023, 18:11

TreeView Sort Top Level Nodes

Beitrag von Spike1977 »

Hallo.
Ich möchte sortieren nach Alphabet und zwar nicht alles sondern nur den Root.
Ich finde dazu nichts... Kein einziger Lazarus SortTopLevelNodes in google...
TopLevelCount gibt ja schon mal den Wert vom allen Roots.
TreeView1 Punkt items zeigt mir SortTopLevelNodes also nehme ich mal an das ich auf den richtigen Weg bin.
Alphasort sortiert leider alles und das will ich ja nicht.

TreeView1.Items.SortTopLevelNodes( ? . ? );
Was muss bei die ? hin?
Grüße.

Benutzeravatar
theo
Beiträge: 10500
Registriert: Mo 11. Sep 2006, 19:01

Re: TreeView Sort Top Level Nodes

Beitrag von theo »

Probier mal so:

Code: Alles auswählen

uses  ...,LazUTF8;

function TForm1.TreeNodeCompare(Node1, Node2: TTreeNode): integer;
begin
  if (Node1.Level = 0) and (Node2.Level = 0) then
    Result := Utf8CompareStr(Node1.Text, Node2.Text)
  else
    Result := Node1.Index - Node2.Index;
end;   

procedure TForm1.Button1Click(Sender: TObject);
begin
  TreeView1.CustomSort(@TreeNodeCompare);
end;

Spike1977
Beiträge: 15
Registriert: Mo 13. Nov 2023, 18:11

Re: TreeView Sort Top Level Nodes

Beitrag von Spike1977 »

Es funktioniert! Danke!

Antworten