Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi In ListView einzelne Spalten sortieren (https://www.delphipraxis.net/13273-listview-einzelne-spalten-sortieren.html)

Nalincah 15. Dez 2003 13:48


In ListView einzelne Spalten sortieren
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ist es möglich in einer ListView auch die SubItems zu sortieren?

Als bei Klick auf "Feldtyp" das der die Feldtypen Alphabetisch sortiert. Genauso bei Feldlänge und Feldname (Siehe Bild). So wie ich das sehe gibt es leider kein "OnTitleClick" wie z.B. beim DBGrid :-(

Sharky 15. Dez 2003 14:05

Re: In ListView einzelne Spalten sortieren
 
Zitat:

Zitat von General2003
....So wie ich das sehe gibt es leider kein "OnTitleClick" wie z.B. beim DBGrid :-(

Hai General2003,

schaue dir mal OnColumnClick an.

Nalincah 16. Dez 2003 15:43

Re: In ListView einzelne Spalten sortieren
 
Hab ich gemacht. Nur leider find ich da nichts was mich weiterbringt. Kann mir wer helfen?

Thunderchild 16. Dez 2003 15:57

Re: In ListView einzelne Spalten sortieren
 
Schau mal in die Delphi-OH für onColumnClick. Dann klicke auf Beispiel und voilá: ein Beispiel zum Sortieren beliebiger Spalten. (jedenfalls bei mir)

Chillaa 21. Okt 2004 14:20

Re: In ListView einzelne Spalten sortieren
 
Ich schreibe mal in diesem Thread weiter:

Ich sortiere meine ListView mit dem Code aus der Code-Library: Erweitertes ListView-Sortieren

Jetzt hätte ich gerne, dass beim erstellen der Listview automatisch nach der dritten Spalte sortiert wird. Also beim create soll eigentlich die Funktion eines Mausklicks auf die dritte Spalte ausgeführt werden.

Wie kann ich das realisieren?

Vielen Dank schonmal!

Grüsse

Stefa

Keldorn 21. Okt 2004 15:16

Re: In ListView einzelne Spalten sortieren
 
Hallo

Allen Sortiermöglichkeiten haben eins gemeinsam: es existiert eine globale Variable (z.B. columntosort), in der gespeichert wird, welche Spalte sortiert werden soll. Du brauchst diese bloß auf deine gewünschte Spalte setzen und anschließend Listview.alphasort aufrufen.

Mfg Frank

Thunderchild 21. Okt 2004 15:50

Re: In ListView einzelne Spalten sortieren
 
Und wenn Du da rund herum noch ein BeginUpdate und EndUpdate setzt, gibts nichtmal Flackerei. Und zudem baut sich die Liste dann auch schneller auf.

Chillaa 23. Okt 2004 17:47

Re: In ListView einzelne Spalten sortieren
 
Hm, also ich habe in der Unit3 (Formular: Postionstatistik) eine ListView1 und auch eine Sortier-Procedure:

Delphi-Quellcode:
procedure TPositionstatistik.sortprocedure(Sender: TObject;
  Column: TListColumn);
begin
  ColumnToSort := Column.Index;
  if ColumnToSort = LastSorted then
    SortDir := 1 - SortDir
  else
    SortDir := 0;
  LastSorted := ColumnToSort;
  (Sender as TCustomListView).AlphaSort;
end;
Nun will ich aus der Unit1 das Formular: Postionstatistik erstellt und dort will ich auch gleich die Sortierung. Also habe ich form dem "Show" folgendes in der Unit1 eingetragen:
Delphi-Quellcode:
    Positionstatistik.sortprocedure(Listview1.Column[3] );
Doch da kommt immer der Fehler "nicht geügend wirkliche Parameter."

Was mache ich falsch?

Viele Grüsse

Stef

Keldorn 24. Okt 2004 09:48

Re: In ListView einzelne Spalten sortieren
 
Delphi-Quellcode:
procedure TPositionstatistik.sortprocedure(Sender: TObject;
  Column: TListColumn);
du hast hier 2 Paramter, und übergibst dann nur einen.

Es macht so wie es jetzt bei dir dasthet, keinen Sinn, das die Procedure allgemein für mehrere Listviews gehalten wird, da du dann auch für jedes Listview eine Columntosort und Lastsorted-Vasribale brauchst. Alos nimm den "sender" raus. und schreib gleich listview1.alphsort
Delphi-Quellcode:
procedure TPositionstatistik.sortprocedure(Column: TListColumn);
begin
  ColumnToSort := Column.Index;
  if ColumnToSort = LastSorted then
    SortDir := 1 - SortDir
  else
    SortDir := 0;
  LastSorted := ColumnToSort;
  ListView1.AlphaSort;
end;
Mfg Frank


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