Delphi-PRAXiS
Seite 1 von 2  1 2      

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 TlistView Spalten sortieren (https://www.delphipraxis.net/9934-tlistview-spalten-sortieren.html)

skorsi 8. Okt 2003 09:01


TlistView Spalten sortieren
 
Hallo,

wie kann ich in einer TListView die Spalten in einer vorgegeben Reihenfolge sortieren:?:

Danke,
skorsi

sakura 8. Okt 2003 09:03

Re: TlistView Spalten sortieren
 
In folgendem Beitrag findest Du ein Beispiel zu AlphaSort und OnCompare. Das sollte Dir weiterhelfen.

http://www.delphipraxis.net/internal...ct.php?t=10718

...:cat:...

skorsi 8. Okt 2003 09:55

Re: TlistView Spalten sortieren
 
Ja aber ich möchte ja nicht den Inhalt der Spalten sortieren
sondern die Spalten selbst in eine best. Reihenfolge bringen.

Bsp. Spalten Name, Adresse, Tel.Nr
wird zu Tel.Nr, Adresse, Name


skorsi

sakura 8. Okt 2003 10:01

Re: TlistView Spalten sortieren
 
Hi skorsi,

tut mir echt leid, aber den kleinen "nebensächlichen" Punkt der Spalten habe ich überlesen :oops:

...:cat:...

sakura 8. Okt 2003 10:06

Re: TlistView Spalten sortieren
 
Ich weiss jetzt nicht welche Delphi Version Du hast, aber seit Delphi 4 hat die TListView die Eigenschaft FullDrag, die einfach auf True setzen und der User kann die Reihenfolge der Spalten beliebig ändern.

...:cat:...

skorsi 8. Okt 2003 10:14

Re: TlistView Spalten sortieren
 
Ja aber ich möchte dem User eben nur die Möglichkeit geben auf zwei Arten zu sortieren.
Deswegen habe ich im Menü auch den Punkt Sort by ...

skorsi 8. Okt 2003 10:37

Re: TlistView Spalten sortieren
 
Gibt es vielleicht eine andere Komponente bei der ich die Spalten so einfach sortieren kann?

sakura 8. Okt 2003 10:42

Re: TlistView Spalten sortieren
 
Okay, das war mir nicht klar. Dann kurz ein kleine Einweisung. Wenn Du die Columns im Editor anlegst, dan erhält jede eine eindeutige ID (Vergabe erfolgt automatisch) von 0 bis zur Anzahl der Spalten - 1. Damit kannst Du dann auf die Spalten immer eindeutig zugreifen und deren Index neu setzen.

Als erstes erst einmal die Herstellung der Standardsortierung für X Spalten:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  I: Integer;
begin
  for I := 0 to Pred(ListView1.Columns.Count) do
    ListView1.Columns.FindItemID(I).Index := I;
end;
Nun zur bestimmten Neusortierung. Hier musst Du beachten, daß Du die Reihenfolge so festlegst, wie die Spalten erscheinen sollen, ansonsten wird das Ergebnis meist wir. Soll die (Original) 2. Spalten an erste Stelle, die dritte an zweite und die erste Spalte an dritte Stelle also

aus 0 - 1 - 2
wird 1 - 2 - 0

dann wäre folgender Code der benötigte:
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
begin
  // ListView1.Columns.FindItemID(ORIGINAL POSITION).Index := NEUE POSITION
  ListView1.Columns.FindItemID(1).Index := 0;
  ListView1.Columns.FindItemID(2).Index := 1;
  ListView1.Columns.FindItemID(0).Index := 2;
end;
Ich hoffe, daß Dir das jetzt die gewünschte Lösung bringt.

...:cat:...

skorsi 8. Okt 2003 10:51

Re: TlistView Spalten sortieren
 
So sortiert er mir aber leider nur die Überschriften der Spalten.

sakura 8. Okt 2003 10:54

Re: TlistView Spalten sortieren
 
Sorry, das ist mir gar nicht aufgefallen, ist aber sehr leicht lösbar. Einfach jeweils ans Ende der Codestücke folgende Zeile einfügen und dann solltest Du aber glücklich sein :mrgreen:

Delphi-Quellcode:
  ListView1.Refresh;
...:cat:...


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:48 Uhr.
Seite 1 von 2  1 2      

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