AGB  ·  Datenschutz  ·  Impressum  







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

ListView "extern" sortieren

Ein Thema von Yheeky · begonnen am 27. Feb 2004 · letzter Beitrag vom 9. Mär 2004
Antwort Antwort
Yheeky

Registriert seit: 7. Jun 2002
1.339 Beiträge
 
#1

ListView "extern" sortieren

  Alt 27. Feb 2004, 11:52
Hi,

ich habe mit folgendem Code die Sortierung für meine ListView bewerkstelligt:
http://www.swissdelphicenter.ch/de/showcode.php?id=1103

Nun möchte ich bei einem Button.Click-Ereignis eine Spalte absteigend sortieren lassen. Wie kann ich das machen?
Ich habe den Anruf ListView.CustomSort(@CustomSortProc, Spalte); probiert, jedoch wird die Spalte dann nur aufsteigend sortiert.

Gruß Yheeky
  Mit Zitat antworten Zitat
Benutzerbild von M-O-D
M-O-D

Registriert seit: 21. Feb 2004
Ort: Create(self)
74 Beiträge
 
Delphi 6 Enterprise
 
#2

Re: ListView "extern" sortieren

  Alt 27. Feb 2004, 13:03
Hi,

Schau dir mal die letzte Zeile in dem Code an...
nach dem Aufruf der
ListView.CustomSort(@CustomSortProc, Spalte); passiert nochwas, nämlich :
Delphi-Quellcode:

{ Set the sort order for the column} 
  LvSortOrder[Column.Index] := not LvSortOrder[Column.Index];
Das ändert bei jedem Klick die Sortierreihenfolge. Das muss Du auch beim Aufruf mit dem Button mit reinschreiben...

Gruß
Ich lebe zwar über meine Verhältnisse, aber immer noch unter meinem Niveau...
  Mit Zitat antworten Zitat
Yheeky

Registriert seit: 7. Jun 2002
1.339 Beiträge
 
#3

Re: ListView "extern" sortieren

  Alt 27. Feb 2004, 22:11
Die Sortierreihenfolge soll ja nicht verändert werden. Diese soll immer absteigend sein...
  Mit Zitat antworten Zitat
Markus K.

Registriert seit: 26. Jan 2004
Ort: Halle
346 Beiträge
 
Delphi 2005 Personal
 
#4

Re: ListView "extern" sortieren

  Alt 27. Feb 2004, 22:43
Hallo Yheeky,
du kannst es ja mal mit diesem Code versuchen.

Delphi-Quellcode:
function CustomSortProc(Item1, Item2: TListItem; ParamSort: integer): integer; stdcall;
begin
  Result := -CompareText(Item1.Caption,Item2.Caption);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ListView1.CustomSort(@CustomSortProc, Spalte);
end;
Ein + vor CompareText sollte aufsteigend sortieren, ein - absteigend.

Tschüß Markus
  Mit Zitat antworten Zitat
Yheeky

Registriert seit: 7. Jun 2002
1.339 Beiträge
 
#5

Re: ListView "extern" sortieren

  Alt 28. Feb 2004, 10:00
In deinem Code bringt die Variable ParamSort doch überhaupt nichts, oder seh ich das falsch?! Die wird in der Funktion ja überhaupt nicht behandelt. Geht demzufolge auch leider nicht bei mir.

Habe die Funktion jetzt so geändert. Nun funktioniert´s:

Code:
function CustomSortProc(Item1, Item2: TListItem; ParamSort: integer): integer; stdcall;
begin
if ParamSort = 0 then
Result := -CompareText(Item1.Caption,Item2.Caption)
  else
Result := -CompareText(Item1.SubItems[ParamSort], Item2.SubItems[ParamSort]);

end;
Danke trotzdem!

Gruß Yheeky
  Mit Zitat antworten Zitat
dopeline

Registriert seit: 7. Mär 2003
Ort: Berlin
304 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: ListView "extern" sortieren

  Alt 9. Mär 2004, 16:25
Woran liegt es, dass nur die erste spalte (Column[0]) bei einem klick drauf sortiert wird?

eigentlich sollte es doch bei allen funktionieren! ich habe den code unverändert vom obigen link (swissdelphicenter) genommen....


Gruß, dopeline
  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 07:18 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