![]() |
Listview sortieren über Button?
Hi Profies 8) ,
ich möchte meine Listview Auf- bzw. Abwärts sortieren konnen. Das habe ich ja auch schon erfahren, aber ich möchte nicht auf den "Column Sort Button" der Listview drücken, sondern auf ein Label, das dann quasi dadrauf verlinkt! Kann mir wer Helfen?
Delphi-Quellcode:
Ich habe es schon mit folgendem probiert, aber er sortiert dabei nur einmal von A bis Z und dann passiert nach erneuten clicken nichts mehr. Ich hätte gerne eine Auf-/Abwärts Sortierung.
procedure TFMain.ListColumnClick(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; procedure TFMain.ListCompare(Sender: TObject; Item1, Item2: TListItem; Data: Integer; var Compare: Integer); var ix: integer; begin if ColumnToSort = 0 then begin if SortDir = 0 then Compare := CompareText(Item1.Caption,Item2.Caption) else Compare := CompareText(Item2.Caption,Item1.Caption); end //if ColumnToSort = 0 then else begin ix := ColumnToSort - 1; if SortDir = 0 then Compare := CompareText(Item1.SubItems[ix],Item2.SubItems[ix]) else Compare := CompareText(Item2.SubItems[ix],Item1.SubItems[ix]); end; end; procedure TFMain.AnredeClick(Sender: TObject); begin ... <-- WAS MUSS HIER REIN? end;
Delphi-Quellcode:
Danke schonmal im Voraus, MfG Waaaghboss
procedure TFMain.AnredeClick(Sender: TObject);
begin ColumnToSort := 0; List.AlphaSort; end; |
Re: Listview sortieren über Button?
Hi Waaaghboss,
du musst nur den Click auf eine Spalte simulieren:
Delphi-Quellcode:
Greetz
ListColumnClick(Sender, ListView1.Columns[0]);
alcaeus |
Re: Listview sortieren über Button?
Hi alcaeus,
das habe ich auch schon gemacht, aber dann trat immer ein Fehler auf, wenn ich das Label gedrückt habe "...Exeption der Klasse EInvalid Cast ist aufgetreten..." Ich weiß nicht, was ich falsch mache... MfG Waaaghboss |
Re: Listview sortieren über Button?
Hi Waaaghboss,
zeig doch mal den Aufruf, welcher den Fehler produziert hat. Du hast versucht, nicht kompatible Typen zu casten (also z.B. TListColumn auf TListView oder umgekehrt). Greetz alcaeus |
Re: Listview sortieren über Button?
Hi alcaeus,
Mit der möchte ich die Procedur aufrufen, da ich die ShowColumnHeaders später auf False setzen möchte, deswegen brauche ich ein Objekt z.B. Das Label "Anrede" um trotzdem sortieren zu können. Ich habe auf dem Gebiet wenig Ahnung, deswegen ist es möglich, das ich etwas vergessen habe oder so.
Delphi-Quellcode:
Wenn ich es so aufrufe kommt in der Zeile ein grüner Pfeil und der Text ist blau unterlegt.
procedure TFMain.AnredeClick(Sender: TObject); <-- Anrede ist ein Label
begin ListColumnClick(Sender, List.Columns[0]); end;
Delphi-Quellcode:
MfG Waaaghboss
procedure TFMain.ListColumnClick(Sender: TObject; Column: TListColumn);
begin ColumnToSort := Column.Index; if ColumnToSort = LastSorted then SortDir := 1 - SortDir else SortDir := 0; LastSorted := ColumnToSort; (Sender as TCustomListView).AlphaSort; <-- Hier kommt der Fehler end; |
Re: Listview sortieren über Button?
:wall: Ist klar, ich hab dir einen falschen Aufruf gesagt :oops:
Probiers mal so:
Delphi-Quellcode:
Greetz
ListColumnClick(ListView1, ListView1.Columns[0]);
alcaeus |
Re: Listview sortieren über Button?
:bounce2:
Es klappt, nice ... Vielen, Vielen Dank!!! Ich habe quasi nen Crashkurz in Delphi genommen und habe deshalb paar Lücken bei manchen Dingen. :wink: MfG Waaaghboss & schönen Tag noch Ps: cu cuz, i´ve probs very often :mrgreen: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:19 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