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 Sortierung (https://www.delphipraxis.net/1722-sortierung.html)

schitho 19. Dez 2002 17:13


Sortierung
 
Hi,

verwende ShellListView mit vsReport. Dadurch werden neben dem Dateinamen auch noch Größe, Typ, etc,) angezeigt.

Wenn man auf den Header klickt passiert gar nix. :cry:

Im Explorer von Windows, wird bei einem Klick auf den Header die jeweilige Spalte sortiert. Dies würde ich gerne auch mit ShellListView erreichen. 8)

Es gibt zwar die Eigenschaft Sorted, doch dadurch kann ich nur bestimmen, ob nach der ersten Spalte sortiert werden soll. :(

Wie kann ich nun erreichen, dass durch einen Klick am Header die jeweilige Spalte auf- bzw. absteigend sortiert wird. :?: :?: :?:

Gruß

Thomas :coder:

Hansa 19. Dez 2002 17:18

Hast Du mal doppelt gekickt auf den Header ?

schitho 19. Dez 2002 17:23

Zitat:

Zitat von Hansa
Hast Du mal doppelt gekickt auf den Header ?

Hab's gerade ausprobiert. Ändert aber nix daran. :(

Thomas

Hansa 19. Dez 2002 17:27

Tja,

dann mußt Du, so wie immer :mrgreen: schon näher erläutern, was Du vorhast. :dancer:

Gruß
Hansa

Christian Seehase 19. Dez 2002 17:32

Moin Thomas,

ich vermute mal, dass der ShellListView vom CustomListView abgeleitet ist, und über eine Methode CustomSort verfügt.
Sollte das der Fall sein, dann könntest Du es hierüber einbauen.
(zumindest in D5 ist das Beispiel in der Hilfe einigermassen brauchbar)

schitho 19. Dez 2002 17:47

Zitat:

dann mußt Du, so wie immer schon näher erläutern, was Du vorhast.
Ich dachte, dass hätte ich eh schon gemacht. :roll:

Na gut. Versuch ich es eben nochmals: :coder:

Also ich verwende in meinem Programm ShellListview, um alle Dateien eines Verzeichnisses anzuzeigen. Dabei wird neben dem Dateinamen (1.Spalte), die Dateigröße (2.Spalte), der Dateityp (3.Spalte) und das Datum der letzten Änderung (4.Spalte) angezeigt. Also genaus, wie im Windows Exlorer in der Ansicht Details.

Nun gibt es ganz oben so einen grauen Balken (den Header), in dem sich auch die Spaltenbeschriftung befindet (Dateiname, Größe, Typ und Geändert am).

Wenn man nun auf Header von Dateiname klickt, soll die Liste nach den Dateinamen (alphabetisch) sortiert werden. War sie vorher aufsteigen sortiert, dann soll sie nach einem Klick absteigend sortiert werden und umgekehrt.

Wenn man nun auf Header von Größe klickt, soll sich Liste nach der Dateigröße der einzelnen Dateien sortiert werden. War sie vorher aufsteigen sortiert, dann soll sie nach einem Klick absteigend sortiert werden und umgekehrt.

etc.

Jetzt alles klar?? :spin:

Und, wie lös ich dieses Problem. Momentan tut sich beim klicken nämlich gar nix :cry:

Gruß
Thomas :hi:

Hansa 19. Dez 2002 18:00

Hi,

So ungefähr meinte ich das ja. Da fällt mir noch ein : Ist das nicht TreeView ??

Gruß
Hansa

schitho 19. Dez 2002 18:01

Zitat:

ich vermute mal, dass der ShellListView vom CustomListView abgeleitet ist, und über eine Methode CustomSort verfügt.
So düfte es sein. Hab den Code eingebaut. Allerdings funktioniert es nicht. Was ist falsch daran??? :oops:

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


procedure TFormShredExplor.ShellListView1ColumnClick(Sender: TObject;
  Column: TListColumn);
begin
  ShellListView1.CustomSort(@CustomSortProc, 0);
  ShellListView1.Refresh;
end;
Gruß
Thomas :coder:

Luckie 19. Dez 2002 18:42

Und jetzt die eine Millionen Euro Frage: Was geht nicht? :shock:

harrybo 19. Dez 2002 20:10

Hi schitho,

TShellListView kannst Du ersetzen durch die kostenlose Komponente "Virtual TreeView", zu finden auf der Site von Mike Lischke unter http://www.delphi-gems.com/VirtualTreeview/VT.php. Zugegeben, die Installation ist trotz ausreichender Dokumentation etwas umständlich, dafür wirst Du belohnt mit einer Komponente, deren Properties-Liste etwa dreimal so lang ist. Sortieren kann die Komponente ohne zusätzliche Programmierung, außerdem gibt es hier neben vsReport auch die Miniaturansicht und einiges mehr. Angenehmer Nebeneffekt: die Komponente hat eine deutlich höhere Performance als TShellListView.
gruß, harrybo


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