![]() |
Sortierfunktion
Hi Jungs,
Ich hab hier eine Sortierfunktion für eine Treeview.
Code:
die Funktioniert auch wunderbar.
function CustomSortProc(Node1, Node2: TTreeNode; Data: Integer): Integer; stdcall;
// für das Sortieren von TreeViews, als Parameter an Customsort übergeben: // Aufruf: TreeView1.CustomSort(@CustomSortProc, 0); // Data: 0 = Absteigend, 1 = Aufsteigend begin if Data = 0 then Result := AnsiStrIComp(Pchar(Node1.Text), PChar(Node2.Text)) else Result := -AnsiStrIComp(PChar(Node1.Text), PChar(Node2.Text)); end; ich möchte aber, das Einträge mit einer bestimmten image, ganz nach oben kommen. Leider haben ich keinen blassen dunst wie ich das implementieren soll, also frag ich hier. :nerd: |
Re: Sortierfunktion
Hi,
das müsste mit folgender Vergleichsfunktion funktionieren, wobei myIdx der Index des Bildes ist, das nach oben soll:
Delphi-Quellcode:
if (Node1.ImageIndex = myIdx and Node2.ImageIndex <> myIdx) then
Result := -1; else if (Node2.ImageIndex = myIdx and Node1.ImageIndex <> myIdx) then Result := 1; else if Data = 0 then Result := AnsiStrIComp(Pchar(Node1.Text), PChar(Node2.Text)) else Result := -AnsiStrIComp(PChar(Node1.Text), PChar(Node2.Text)); |
Re: Sortierfunktion
Delphi-Quellcode:
waren noch ein paar kleine Flüchtigkeitsfehler.
if (Node1.ImageIndex = 0) and (Node2.ImageIndex <> 0) then
Result := -1 else if (Node2.ImageIndex = 0) and (Node1.ImageIndex <> 0) then Result := 1 else if Data = 0 then Result := AnsiStrIComp(Pchar(Node1.Text), PChar(Node2.Text)) else Result := -AnsiStrIComp(PChar(Node1.Text), PChar(Node2.Text)); So passt es, vielen Dank ->> Problem solved |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:45 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz