Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Sortierfunktion (https://www.delphipraxis.net/60121-sortierfunktion.html)

HariboHunter 3. Jan 2006 14:00


Sortierfunktion
 
Hi Jungs,
Ich hab hier eine Sortierfunktion für eine Treeview.

Code:
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;
die Funktioniert auch wunderbar.
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:

Niko 3. Jan 2006 16:51

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));

HariboHunter 18. Jan 2006 07:54

Re: Sortierfunktion
 
Delphi-Quellcode:
  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));
waren noch ein paar kleine Flüchtigkeitsfehler.
So passt es, vielen Dank

->> Problem solved


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:40 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