![]() |
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: |
Hast Du mal doppelt gekickt auf den Header ?
|
Zitat:
Thomas |
Tja,
dann mußt Du, so wie immer :mrgreen: schon näher erläutern, was Du vorhast. :dancer: Gruß Hansa |
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) |
Zitat:
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: |
Hi,
So ungefähr meinte ich das ja. Da fällt mir noch ein : Ist das nicht TreeView ?? Gruß Hansa |
Zitat:
Code:
Gruß
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; Thomas :coder: |
Und jetzt die eine Millionen Euro Frage: Was geht nicht? :shock:
|
Hi schitho,
TShellListView kannst Du ersetzen durch die kostenlose Komponente "Virtual TreeView", zu finden auf der Site von Mike Lischke unter ![]() gruß, harrybo |
Zitat:
Ich werde mir zwar die von harrybo vorgeschlagen "Virtual TreeView" ansehen, trotzdem würde es mich intressieren, was ich falsch gemacht habe. Gruß Thomas |
Hi schitho,
klar ist, dass die Komponente nicht selbst sortieren kann, d.h. das Sortieren muss codiert werden. Wie das im Fall der TListView geht ist sehr gut in ![]() gruß, harrybo |
Zitat:
Hab mir die VirtualTreeView-Komonente angesehen. Ist wirklich sehr mächtig, aber auch sehr aufwendig. Eigendlich gefällt mir ShellListView sehr gut, vermisse nur folgendes: 1.) einfache Sortiermöglichkeit 2.) Filtern (z.B. nur Dateien eines bestimmten dateitypes, wie *.bak anzeigen) 3.) Ausblenden der Laufwerke (nicht nur der Folder). Aber scheinbar geht das nicht. Kennt jemand eine Komonente die das kann, die aber nicht so aufwendig wie VirtualTreeView ist? :?: Gruß Thomas :coder: |
Moin Thomas,
den ShellListView kenne ich ja nicht, deshalb kenne ich auch nicht dessen Möglichkeiten, aber hast Du schon mal darüber nachgedacht, Dir etwas vergleichbares aus dem CustomListView selber zu erstellen? |
Zitat:
Hmmm.... Vielleicht beschäftige ich mich doch noch genauer damit. Man hat ja sonst eh nix zu tun :wink: Gruß Thomas :hi: |
Hab mich mit ListView auseinandergesetzt und bin dabei auf folgende Seite gestoßen, die mir sehr geholfen hat: :spin:
![]() Gruß Thomas :hello: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:16 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