![]() |
Re: Problem mit CustomSort in Listview
Sehr geehrter Herr Kaiser,
also bei mir funktionierts....
Delphi-Quellcode:
Nach user aufsteigend, nach Prio absteigend. Wo ist jetzt Dein Problem?
Function AuswertungSortProc(Item1, Item2: TListItem; Data: Integer): Integer; stdcall;
Var prio1, prio2: integer; Begin If Item1.Caption <> Item2.Caption Then Result := CompareText(Item1.Caption, Item2.Caption) Else Begin prio1 := strtoint(item1.SubItems[0]); prio2 := strtoint(item2.SubItems[0]); result := prio2 - prio1; End; If data = 1 Then Result := -Result; End; Procedure TForm1.btClick(Sender: TObject); Procedure _Add(aUser, aprio, aAufgabe: String); Begin With lvTest.Items.Add Do Begin Caption := aUser; SubItems.Add(aPrio); SubItems.Add(aAufgabe); End; End; Begin _Add('user2', '120', 'aufgebe 876'); _Add('user1', '1200', 'aufgabe abce...'); _Add('user1', '200', 'aufgabe 123'); _Add('user1', '100', 'aufgabe 345'); _Add('user1', '200', 'aufgabe cde'); lvTest.CustomSort(@AuswertungSortProc, 0); End; [edit] Code verhübscht [/edit] |
Re: Problem mit CustomSort in Listview
siht eigentlich nciht viel anders aus als bei mir würd ich sagen.
Ich hab hier mal einen beispiel source der nciht das tut was er soll:
Delphi-Quellcode:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, StdCtrls; type TForm1 = class(TForm) ListView1: TListView; Button1: TButton; procedure Button1Click(Sender: TObject); private function ComparePrio(a,b:integer):integer; { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var aufg : TListItem; function AuswertungSortProc(Item1, Item2: TListItem; Data: Integer): Integer; stdcall; var prio1,prio2:integer; begin Result:=CompareText(Item1.Caption,Item2.Caption); result:= 0; if Result = 0 then prio1:=strtoint(item1.SubItems[0]); prio2:=strtoint(item2.SubItems[0]); Result := -Form1.ComparePrio(prio1,prio2); //if data = 1 then Result := -Result; end; begin // Das hier ist eigentlich eine schleife, aber im Beispiel schreibe ich es mal hard rein: ListView1.CustomSort(@AuswertungSortProc, 0); aufg := Listview1.Items.Add; aufg.Caption:='user1'; aufg.SubItems.Add('200'); aufg.SubItems.Add('text1234'); ListView1.Refresh; // Schleifenende ListView1.CustomSort(@AuswertungSortProc, 0); aufg := Listview1.Items.Add; aufg.Caption:='user1'; aufg.SubItems.Add('1200'); aufg.SubItems.Add('text1234'); ListView1.Refresh; ListView1.CustomSort(@AuswertungSortProc, 0); aufg := Listview1.Items.Add; aufg.Caption:='user1'; aufg.SubItems.Add('100'); aufg.SubItems.Add('text1234'); ListView1.Refresh; ListView1.CustomSort(@AuswertungSortProc, 0); aufg := Listview1.Items.Add; aufg.Caption:='user2'; aufg.SubItems.Add('120'); aufg.SubItems.Add('text1234'); ListView1.Refresh; ListView1.CustomSort(@AuswertungSortProc, 0); aufg := Listview1.Items.Add; aufg.Caption:='user1'; aufg.SubItems.Add('200'); aufg.SubItems.Add('text1234'); ListView1.Refresh; end; function TForm1.ComparePrio(a,b:integer):integer; begin if a > b then result := 1 else if a = b then result := 0 else Result := -1; end; end. |
Re: Problem mit CustomSort in Listview
Hallo,
schau Dir mal Zeile 35 an. Dann schmeiss diese weg. Gruß xaromz |
Re: Problem mit CustomSort in Listview
sorry, hatte ich vergessen wieder rauszunehmen, funktioniert aber immer noch nicht:
user2 | 120 user1 | 1200 user1 | 200 user1 | 100 user1 | 200 werd aber mal eben das von Luckie ausprobieren. hatte ich grade nicht gesehen :oops: |
Re: Problem mit CustomSort in Listview
*freu* :-D Das von Luckie hat funktioniert. Dank euch allen für die bemühungen.
bis dann Kaiser |
Re: Problem mit CustomSort in Listview
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:48 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-2025 by Thomas Breitkreuz