Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   ListView Komponente mit Shellicons (Virtual ListView) (https://www.delphipraxis.net/45402-listview-komponente-mit-shellicons-virtual-listview.html)

F.W. 5. Mai 2005 17:35


ListView Komponente mit Shellicons (Virtual ListView)
 
Liste der Anhänge anzeigen (Anzahl: 2)
Da ist sie nun also! Mein ListView mit ShellIcons.

Die Benutzung sieht folgendermaßen aus:
Die Items sind selbst zu erstellen bzw. zu entfernen ect. Das hat den Vorteil, dass die Kompo sehr variabel einsetzbar ist. Beispiele für Anwendungsgebiete sind FTP-Verzeichnisse auflisten, lokal Verzeichnisse auflisten oder wie bei mir, wenn Dateien mit verschiedenen Dateitypen in einer Datei gespeichert sind und dieser Inhalt aufgelistet werden soll...

Wie die Icons zugewiesen werden:
Je nachdem in welchem Index nach einem Dateinamen gesucht werden soll, wird dann die evtl. vorhandene Endung benutzt um das Dateisymbol und den Dateityp herauszubekommen, wenn keine Dateierweiterung gefunden wird, wird die "Datei" als Dateiodner oder unbekannte Datei eingestuft (bekommt das dementsprechende Icon)

Wichtige Eigenschaften sind folgende:
  • SmallShellIconsLoaded: Boolean - gibt an, ob die ShellIcons schon geladen wurden (wird durch Aufruf von LoadShellIcons True)
  • BigShellIconsLoaded: Boolean - gibt an, ob die ShellIcons schon geladen wurden (wird durch Aufruf von LoadShellIcons True)
  • SmallShellImages: TImageList - dort werden die kleinen ShellIcons geladen (von Windows) diese Liste sllte nicht greigegeben werden (.Free)!
  • BigImages: TImageList - dort werden die großen ShellIcons geladen (von Windows) diese Liste sllte nicht greigegeben werden (.Free)!
  • UseBigImages: Boolean - ob große Icons angezeigt werden sollen (nur im ViewStyle vsIcon)
  • UseSmallImages: Boolean - ob kleine Icons angezeigt werden sollen (in den drei anderen ViewStyles)
  • IndexFileExtension: Integer - gibt an, wo der Dateiname für das Symbol ist (-2 = nirgends | -1 = Caption | 0..? SubItems)
  • IndexTypeAusgabe: Integer - gibt an, in welchem SubItem/Caption der Name des Dateityps ausgegeben werden soll (-2 = nirgends | -1 = Caption | 0.. SubItems)
  • IndexFileOrOrdner: Integer - es gibt Dateien ohne Endung, die würden als Ordner erkannt werden, wenn man soein Item einfügt kann man ihm dennoch ein Dateisymbol (das Standart UNBEKANNTE DATEI Symbol geben) -1 wenn nicht benutzt; 0..? im jeweiligen SubItem muss etwas stehen damit das Dateisymbol angezeigt wird

Prozeduren/Funktionen:
  • LoadShellIcons - wird hauptsächlich intern genutzt (zum Laden der ShellIcons von Windows)
  • UpdateIcons - alle Items werden mit dem entsprechenden Icon versehen
  • UpdateIcon(const Index: Integer) - zum Aktualisieren des Symbols eines einzigen Items

Zu Fehlern kann bei den Eigenschaften Use...Images kommen, nachdem auf False setzen und dann wieder auf True setzen, werden unter Umständen die Icons nicht wieder angezeigt

Schreibt was ihr von der Kompo haltet und was man noch alles ändern könnte!!

Killer 30. Jul 2005 23:17

Re: ListView Komponente mit Shellicons (Virtual ListView)
 
So ein "alter" Thread und kein Feedback hmm. Hab grad zufällig über die SuFu diesen Thread gefunden und mir die Kompo gezogen und installt. Gefällt mir soweit ganz gut, kann ich auch gebrauchen. Mal sehen ob ich während des Proggens irgendwelche Fehler oder Verbesserungswünsche finde :)

Sieht sonst super aus :thumb:

F.W. 6. Aug 2005 20:15

Re: ListView Komponente mit Shellicons (Virtual ListView)
 
Danke!

Die Datei/Ordner-Unterscheidung ist ein wenig umständlich, wenn man größeres/komplexeres plant, sollte man etwas eigenes bauen, aber für zwischendurch mal was kleines, quasi wenns schnell gehen soll denke ich geht's ;)

dahead 6. Aug 2005 20:19

Re: ListView Komponente mit Shellicons (Virtual ListView)
 
was ist daran "Virtual"?

F.W. 7. Aug 2005 12:25

Re: ListView Komponente mit Shellicons (Virtual ListView)
 
Zitat:

Zitat von dahead
was ist daran "Virtual"?

Keine Ahnung, aber Borland liefert die Demo "Virtual ListView" mit, die die Darstellung von ShellIcons in der eigenen ListView veranschaulicht.
Daher bin ich davon ausgegangen, dass das so heißt ;)
Verbesser mich wenn Virtual ListView etwas anderes ist! :warn:

dahead 7. Aug 2005 12:57

Re: ListView Komponente mit Shellicons (Virtual ListView)
 
naja, also was an der borland demo "virtual" sein soll, kann ich dir auch nicht sagen.
allerdings verstehe ich unter virtuell was anderes. deine listview erscheint mir eher als eine art shell listview. was mich wundert ist, dass du dein zip file sowie deine komponente ja selbst auch nicht "virtual" sondern eben "shell" nennst. warum also den thread nicht?

eine richtige "virtual listview" findest du unter http://www.soft-gems.net/VirtualTreeview/
eine shell-listview die auf dieser basiert findest du unter http://www.mustangpeak.net/vstools.htm

das "virtual" daran ist, dass die listview selbst nichts über die daten weiß, die sie anzeigt (einzig die größe).

F.W. 7. Aug 2005 16:18

Re: ListView Komponente mit Shellicons (Virtual ListView)
 
Zitat:

das "virtual" daran ist, dass die listview selbst nichts über die daten weiß, die sie anzeigt (einzig die größe)
Kannst du mir das mal näher erläutern? Wie meinst du das DIE LISTVIEW WEIß NICHTS ÜBER IHRE DATEN?

dahead 7. Aug 2005 16:31

Re: ListView Komponente mit Shellicons (Virtual ListView)
 
kuck dir doch mal den link an, da steht alles was man wissen muss. ich zitier dir mal das wichtigste:

Zitat:

As the name already indicates, this control uses a different paradigm for tree management than other controls of this kind. It does not know anything about the data it manages (except its size), not even the captions of a node. Everything is retrieved from the application via events (or descendants via overridden methods).
Zitat:

Wie meinst du das DIE LISTVIEW WEIß NICHTS ÜBER IHRE DATEN?
du teilst der VirtualTreeview (VTV) nur die größe deiner darzustellenden daten mit. den rest macht sie mehr oder weniger selbst.
sobald die VTV auf die anzuzeigenden daten zugreifen muss, liest sie diese aus - und erst dann. aber da das hier ja nicht der platz für diskussionen zur VTV ist, verweise ich (falls dich das überhaupt interessiert) mal auf folgendes anfänger tutorial: http://www.delphi-treff.de/content/tutorials/vstkurs/

da du ja aber mtwl. den thread titel geändert hast, ist egtl. alles in ordnung.


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