Autor Beitrag
Martok
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Moderator
Beiträge: 3655
Erhaltene Danke: 594

Win XP x86, Win 8.1 x64
Lazarus Snapshot; Delphi 7,2007,XE; PHP (PHPEdit,PhpStorm); JS; Java(Eclipse)
BeitragVerfasst: Do 19.11.15 01:32 
MDirStat ist eine Neuimplementation von WinDirStat, was wiederum eine Portierung von KDirStat ist.

screen

Was tut es?
Wie auch seine Vorgänger zeigt MDirStat die Festplattenbelegung unter Verwendung von Treemaps an. Jeder Datei wird dabei eine Fläche in einer Zeichenfläche zugeordnet, durch die man große Dateien schnell erkennen kann.

Warum noch ein Projekt?
WinDirStat hat so seine Eigenheiten, die es für manche Fälle recht schwer benutzbar machen. Ausschlaggebend für mich war die eher mäßige Erkennung von Mountpunkten und Junctions, durch die es bei meinem System gerne mal kompletten Käse ausgerechnet hat. Es gibt zwar einen Fork, der das richtig macht (altWinDirStat), aber der hat dafür einige andere Macken.
Oh, und nebenbei ist MDirStat auffallend schneller, ohne dass ich dafür was getan hätte ;)

Bedienung
Die angezeigte Dateigröße ist immer die reale Größe, die Windows als "Größe auf dem Datenträger" meldet, und kann damit in beide Richtungen vom erwarteten Wert abweichen.
Die Baum- und Treemap-Ansicht sind synchronisiert: ein Objekt in einem auswählen markiert das Objekt auch in dem anderen. Beide bieten das System-Kontextmenü zum jeweiligen Objekt an. Durch "File->Update Selection" kann der markierte Teilbaum aktualisiert werden, "Update All" aktualisert alles, "Open" öffnet den Zielauswahldialog.
In der Baumansicht werden komprimierte Dateien und Sparse Files blau markiert.
Die Farben werden aus dem Dateityp abgeleitet, so dass Dateien mit gleicher Erweiterung die gleiche Farbe bekommen.
Öffnet man ein Hauptverzeichnis (oder einen Mountpunkt), so werden zwei weitere Einträge eingefügt: Free Space (freier Platz, wie von Windows gemeldet) sowie Unknown (Differenz zwischen allem messbaren und dem, was nach Gesamtgröße-Frei belegt sein müsste). Sehr große Unknown-Blöcke können zum Beispiel durch Schattenkopien belegt werden, oder in geringerem Maß durch Fragmentierung entstehen (da Verzeichniseinträge nicht sauber messbar sind).
In den Optionen kann der Treemap-Stil sowie die Darstellung konfiguriert werden.

Installation
MDirStat muss nicht installiert werden. Ist eine Datei "ExeName.portable" im Programmverzeichnis vorhanden, so wird die Konfigurationsdatei im Programmverzeichnis abgelegt. Ansonsten wird ein Ordner in den Anwendungsdaten verwendet.

Quelltext
Der Quelltext ist im Git-Repository des Projektes verfügbar. Er steht unter der Apache-2.0-Lizenz.
Gebaut ist das ganze mit Lazarus 1.5 und FPC 3.1 (also Snapshot-Versionen), sollte aber problemlos auch mit 1.4 und 3.0 laufen. VirtualTreeView-new wird als Komponente benutzt, sowie die bitSpaceUtils, die als git-Submodule eingetragen sind.

Viele Grüße,
Martok
Einloggen, um Attachments anzusehen!
_________________
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."


Zuletzt bearbeitet von Martok am Mi 29.03.17 15:30, insgesamt 5-mal bearbeitet

Für diesen Beitrag haben gedankt: BenBE, Frühlingsrolle, jfheins, Mathematiker, Narses, SMO, spawn89
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6256
Erhaltene Danke: 118

Windows 7
XE2
BeitragVerfasst: Do 19.11.15 08:13 
Zip-Datei lässt sich mit Standard-Windows-Bordmitteln nicht öffnen.
Vielleicht mal ein anderes Zip-Format hochladen. :wink:
Ich habe es mit WinRar öffnen können.
Martok Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Moderator
Beiträge: 3655
Erhaltene Danke: 594

Win XP x86, Win 8.1 x64
Lazarus Snapshot; Delphi 7,2007,XE; PHP (PHPEdit,PhpStorm); JS; Java(Eclipse)
BeitragVerfasst: Do 19.11.15 10:39 
user profile iconjasocul hat folgendes geschrieben Zum zitierten Posting springen:
Zip-Datei lässt sich mit Standard-Windows-Bordmitteln nicht öffnen.
Das lag daran, dass es keine Zip-Datei war. 7Zip war der Meinung, dass eine Dateiendung von "zip" ja noch kein Grund ist auch eine zip zu erstellen, und hat eine 7z erstellt :roll:

_________________
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."

Für diesen Beitrag haben gedankt: jasocul
FinnO
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1323
Erhaltene Danke: 117

Mac OSX
TypeScript (Webstorm), Kotlin, Clojure (IDEA)
BeitragVerfasst: Do 19.11.15 10:44 
Moin,

coole Sache, so eine Treemap. Leider funktioniert die nur auf meinen Nicht-Windows Partitionen (oder nicht-SSD-Partitionen?). Auf der C:-Partition wird zwar eine TreeMap gerendert, jedoch entsteht ein großer Block Unknown mit negativem Inhalt und das Klicken in der Map funktioniert nicht mehr.

MDirStat

Gruß
Finn
Einloggen, um Attachments anzusehen!
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 9815
Erhaltene Danke: 1030

W2k .. W7pro
TP3 .. D7pro .. D10.1
BeitragVerfasst: Do 19.11.15 11:03 
Moin!

Ich nutze WinDirStat am Job relativ häufig, um den Überblick über unsere Storage-Systeme zu behalten :lupe: (oder besser: was unsere User so damit tun :roll:). Hab mir grade deinen Port angesehen und es ist tatsächlich deutlich schneller! :zustimm: Super, ich werd´s weiter testen. ;) Vielen Dank! :beer:

Wenn ich noch eine kleine Anmerkung machen bzw. Wunsch äußern dürfte: kannst du den "Free Space"-Block in der TreeMap immer in Grau anzeigen (das macht WinDirStat auch), so dass man gleich sieht, dass das keine "Datei" ist? Ich bin sonst immer so erschrocken, was da für riesige Files rumliegen... :zwinker:

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
SMO
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 120
Erhaltene Danke: 18


D2005 Personal
BeitragVerfasst: Do 19.11.15 18:45 
Hey Klasse! :zustimm:

Ich benutze WinDirStat auch schon lange.

MDirStat scheint einerseits ein bisschen schneller als WinDirStat zu sein, z.B. beim Aufklappen von riesigen Verzeichnissen wie C:\Windows\WinSxS. Aber andererseits fühlt es sich ziemlich zäh an, wenn ich z.B. in der Listview per Tastatur navigiere (Pfeiltaste gedrückt halten, die rote Markierung des aktuellen Items in der Treemap wird aktualisiert, die Listview dagegen wird erst wieder neu gezeichnet wenn ich die Taste loslasse).

Das negative "Unknown"-Problem von FinnO kann ich bestätigen. Passiert bei mir nur, wenn ich MDirStat als Admin starte. Mit normalen rechten bekomme ich immer noch einen Unknown-Block, dann aber mit 2,4 GB statt negativ.

Kleiner Feature-Request: die Anzeige des freien Speichers als eigenen Block würde ich gerne abschalten können.
Martok Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Moderator
Beiträge: 3655
Erhaltene Danke: 594

Win XP x86, Win 8.1 x64
Lazarus Snapshot; Delphi 7,2007,XE; PHP (PHPEdit,PhpStorm); JS; Java(Eclipse)
BeitragVerfasst: Fr 20.11.15 11:39 
Schön, dass jemand was damit anfangen kann :)

user profile iconNarses hat folgendes geschrieben Zum zitierten Posting springen:
Wenn ich noch eine kleine Anmerkung machen bzw. Wunsch äußern dürfte: kannst du den "Free Space"-Block in der TreeMap immer in Grau anzeigen (das macht WinDirStat auch), so dass man gleich sieht, dass das keine "Datei" ist?
Ist lokal implementiert.

user profile iconSMO hat folgendes geschrieben Zum zitierten Posting springen:
Kleiner Feature-Request: die Anzeige des freien Speichers als eigenen Block würde ich gerne abschalten können.
Für die Treemap? Ja, sehr sinnvoll. Hab ich auf einer halbleeren Platte im Büro auch festgestellt ;) Kommt auf die Liste.

user profile iconSMO hat folgendes geschrieben Zum zitierten Posting springen:
Aber andererseits fühlt es sich ziemlich zäh an, wenn ich z.B. in der Listview per Tastatur navigiere (Pfeiltaste gedrückt halten, die rote Markierung des aktuellen Items in der Treemap wird aktualisiert, die Listview dagegen wird erst wieder neu gezeichnet wenn ich die Taste loslasse).
Stimmt, da sieht man das extrem, dass ich die ganze Treemap neu zeichne, nur um den Markierungsraumen da drauf zu bekommen. Blöde Idee eigentlich ;)

user profile iconSMO hat folgendes geschrieben Zum zitierten Posting springen:
Das negative "Unknown"-Problem von FinnO kann ich bestätigen. Passiert bei mir nur, wenn ich MDirStat als Admin starte. Mit normalen rechten bekomme ich immer noch einen Unknown-Block, dann aber mit 2,4 GB statt negativ.
Mit einer Testversion hat mir FinnO da grade etwas geholfen... MDirStat findet in diesem Fall mehr belegten Speicher, als laut Windows tatsächlich belegt ist. 129G auf einer 128G SSD, da passt also etwas nicht. Mir ist nur nicht klar wo das herkommt: andersrum hätte ich das jetzt eher erwartet, da die Verwaltungsinformationen ja nicht mitgerechnet werden.
Eine Idee: wie voll ist die betreffende Platte bei dir, user profile iconSMO?

_________________
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."

Für diesen Beitrag haben gedankt: Narses, SMO
SMO
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 120
Erhaltene Danke: 18


D2005 Personal
BeitragVerfasst: Fr 20.11.15 16:49 
user profile iconMartok hat folgendes geschrieben Zum zitierten Posting springen:
Mit einer Testversion hat mir FinnO da grade etwas geholfen... MDirStat findet in diesem Fall mehr belegten Speicher, als laut Windows tatsächlich belegt ist. 129G auf einer 128G SSD, da passt also etwas nicht. Mir ist nur nicht klar wo das herkommt: andersrum hätte ich das jetzt eher erwartet, da die Verwaltungsinformationen ja nicht mitgerechnet werden.
Eine Idee: wie voll ist die betreffende Platte bei dir, user profile iconSMO?


Ist bei mir ebenfalls auf einer 128 GB SSD aufgetreten, die ich als Systemlaufwerk benutze.
Ich nehme an, Hardlinks, NTFS Streams usw. berücksichtigst du alles. Wie sieht es mit Ordnern/Dateien aus, auf die man selbst mit Adminrechten keinen Zugriff erhält? Davon gibt es ja auf dem Systemlaufwerk ein paar. Oder könnte es Verschnitt sein?
Auf meiner 3 TB Datenplatte bekomme ich um die 755 MiB "Unknown" angezeigt. Der Wert hat sich seit gestern leicht geändert, aber was der Grund war weiß ich nicht.
Martok Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Moderator
Beiträge: 3655
Erhaltene Danke: 594

Win XP x86, Win 8.1 x64
Lazarus Snapshot; Delphi 7,2007,XE; PHP (PHPEdit,PhpStorm); JS; Java(Eclipse)
BeitragVerfasst: Fr 20.11.15 19:03 
user profile iconSMO hat folgendes geschrieben Zum zitierten Posting springen:
Ich nehme an, Hardlinks, NTFS Streams usw. berücksichtigst du alles.
Hardlinks ja (indem sie nicht verfolgt werden), ebenso Mountpunkte (vgl. --one-file-system von diversen Unix-utils). ADS und größere Sicherheitsbeschreibungen (noch) nicht, die sollten dann aber grade nicht gezählt werden und später indirekt als Unknown auftauchen. Dafür ist der Eintrag eigentlich gedacht.

user profile iconSMO hat folgendes geschrieben Zum zitierten Posting springen:
Wie sieht es mit Ordnern/Dateien aus, auf die man selbst mit Adminrechten keinen Zugriff erhält? Davon gibt es ja auf dem Systemlaufwerk ein paar. Oder könnte es Verschnitt sein?
Ebenso das. Beispiel: Papierkörbe anderer Benutzer.

Der Punkt ist: das alles erzeugt eine Situation, in der weniger Datenmenge gescannt wurde, als nach GetDiskFreeSpaceEx() belegt sein müssten. Die Differenz ist dann postiv und wird als "Unkown" gelistet. Bei euch ist die Differenz aber negativ - wir wissen von belegtem Speicher, der gar nicht belegt sein sollte. Das einzige was mir da einfällt, ist dass NTFS auf den letzten paar Prozent freiem Speicher nicht mehr den korrekten Wert als frei angibt, sondern etwas zu viel. Deswegen die Frage nach der Belegung.

_________________
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
SMO
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 120
Erhaltene Danke: 18


D2005 Personal
BeitragVerfasst: Fr 20.11.15 21:16 
Hier unmittelbar nacheinander aufgenommene Screenshots, einmal Adminrechten gestartet, einmal ohne.
mdir_mit_admin
mdir_ohne_admin
Einloggen, um Attachments anzusehen!
Mathematiker
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Quizmaster
Beiträge: 2463
Erhaltene Danke: 1219

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: Fr 20.11.15 22:31 
Hallo,
das Problem mit dem Unknown-Bereich habe ich auch auf einer normalen Festplatte.
Als Administrator ausgeführt wird ein negativer Bereich angezeigt, als Nicht-Administrator 12,2 GiB bei 662 Gesamtgröße.

Beste Grüße
Mathematiker

_________________
Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
Martok Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Moderator
Beiträge: 3655
Erhaltene Danke: 594

Win XP x86, Win 8.1 x64
Lazarus Snapshot; Delphi 7,2007,XE; PHP (PHPEdit,PhpStorm); JS; Java(Eclipse)
BeitragVerfasst: Mo 23.11.15 16:30 
Dank user profile iconMathematiker und user profile iconFinnO, die mich mit Testdaten versorgt haben, gibt es zumindest Informationen:

Das Unknown-Problem ist größer als ich dachte (und, Bonus: das machen alle falsch. WinDirStat, altWinDirStat, Windows-Explorer, TotalCommander...). An sich ist die Ursache recht einfach, aber der Fix wird haarig, wenn das auch noch performant sein soll.

Hintergrund ist, dass es in Windows 3 Arten von Links gibt: Hardlinks, Junctions/Softlinks und Symlinks. Nur Junctions und Symlinks (und, IIRC, Mountpunkte) erhalten dabei das Attribut "FILE_ATTRIBUTE_REPARSE_POINT" (weil sie auch aus dem Dateisystem raus führen können). Hardlinks hingegen sind Dateisystemintern, es gibt also einfach mehrere Verzeichniseinträge die auf einen Datenstrom zeigen. Hardlinks sind deswegen kaum zu erkennen, aber belegen eben nur einmal Platz. Via Suche im MSDN FINDFIRSTFILENAMEW/Suche im MSDN FINDNEXTFILENAMEW bekommt man alle Namen, unter der eine Datei erreichbar ist, sowie über Suche im MSDN GETFILEINFORMATIONBYHANDLE die Anzahl weiterer Einträge und eine eindeutige ID der Daten. Bedeutet aber ein zusätzliches Open/Stat/Close pro Datei, was ggf. langsam wird, da man es bei jeder Datein machen muss...

Problematisch ist das, weil Windows Update das massiv benutzt, praktisch der komplette WinSxS-Ordner ist von Hardlinks durchzogen. Auch auf meinen Systemen, so liegen hier z.B. knapp 50k Verzeichniseinträge mehr, als Datenströme existieren.

Das ist doch mal eine spannende Aufgabe ;)

_________________
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."

Für diesen Beitrag haben gedankt: BenBE, Mathematiker, Narses, SMO
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 18587
Erhaltene Danke: 1596

W10 x64 (Chrome, IE11)
Delphi 10.1 Ent, Oxygene, C# (VS 2015), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 24.11.15 00:16 
user profile iconMartok hat folgendes geschrieben Zum zitierten Posting springen:
Das Unknown-Problem ist größer als ich dachte (und, Bonus: das machen alle falsch. WinDirStat, altWinDirStat, Windows-Explorer, TotalCommander...).
Das Problem mit den Links und dadurch mehrfach berechnetem Speicherplatz kenne ich... TreeSize macht das aber z.B. korrekt, das habe ich deshalb auch schon vor einer ganzen Weile gekauft. (Es gibt aber auch eine kostenlose Version.)
Alle stimmt also nicht ganz. ;-)

_________________
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!

Für diesen Beitrag haben gedankt: Martok
Sinspin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1080
Erhaltene Danke: 68

Win7
DXE2 Prof, Lazarus
BeitragVerfasst: Mi 25.11.15 15:47 
Das ist mal was anders! Avira meldet TR/ATRAPS.Gen2 wenn ich versuche das zip zu entpacken. False positive vermute ich mal, typisch für Avira.

_________________
Solange keine Zeile Code geschrieben ist, läuft ein Programm immer fehlerfrei.
Ich teste nicht, weil ich Angst habe Fehler zu finden.
Martok Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Moderator
Beiträge: 3655
Erhaltene Danke: 594

Win XP x86, Win 8.1 x64
Lazarus Snapshot; Delphi 7,2007,XE; PHP (PHPEdit,PhpStorm); JS; Java(Eclipse)
BeitragVerfasst: Mo 07.12.15 19:30 
Es gibt eine neue Version: 1.1, Download im ersten Beitrag.

Sichtbare Änderungen:
* Freespace und Unknown werden immer grau dargestellt
* CSV-Baumdatenexport mit Tiefenangabe
* Neuzeichnen bei Selektionsänderung repariert
* Option: Freespace, Unknown in der Treemap ausblendbar
* Erkennung von NTFS-Hardlinks
* Anzeige weiterer Orte einer Datei/Link mit klickbarer Liste

Die Hardlinkerkennung muss vor dem Scan explizit in den Optionen aktiviert werden, da sie verdammt langsam sein kann. Es können außerdem immer nur Hardlinks innerhalb des gescannten Verzeichnis gefunden werden. Nach dem Scan kann man sich dann im "Hardlink Inspector" andere Links zu einer Datei anzeigen lassen.


user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Das Problem mit den Links und dadurch mehrfach berechnetem Speicherplatz kenne ich... TreeSize macht das aber z.B. korrekt, das habe ich deshalb auch schon vor einer ganzen Weile gekauft. (Es gibt aber auch eine kostenlose Version.)
Alle stimmt also nicht ganz. ;-)
Lustigerweise ist das der Laden, der seit einiger Zeit für VirtualTreeview verantwortlich ist ;-)

user profile iconSinspin hat folgendes geschrieben Zum zitierten Posting springen:
Das ist mal was anders! Avira meldet TR/ATRAPS.Gen2 wenn ich versuche das zip zu entpacken. False positive vermute ich mal, typisch für Avira.
Nicht nur Delphi, jetzt auch Freepascal. Ist das jetzt ein Reife-Zeugnis? :lol: Ich hab mir mal den Spaß gemacht und die 1.1 gescannt.

_________________
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."

Für diesen Beitrag haben gedankt: Mathematiker
Martok Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Moderator
Beiträge: 3655
Erhaltene Danke: 594

Win XP x86, Win 8.1 x64
Lazarus Snapshot; Delphi 7,2007,XE; PHP (PHPEdit,PhpStorm); JS; Java(Eclipse)
BeitragVerfasst: Mi 29.03.17 15:45 
Nach einer "kleinen" Weile heute eine neue Version, Download im ersten Beitrag.

Es gibt nur einen einzigen Bugfix: der Verzeichnisauswahldialog wurde nicht immer sauber initialisiert.

Ansonsten nur Updates von Compiler und LCL sowie eine kleine Code-Reorganisation vom Infodialog. Auf besonderen Wunsch ist es jetzt auch möglich, eine Version zu compilieren die unter Windows 2000 funktionsfähig ist (also weniger Abhängigkeiten auf moderne Funktionen hat). Sollte da jemand Binaries brauchen, könnt ihr euch gern melden.

_________________
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."

Für diesen Beitrag haben gedankt: mael, Mathematiker, Narses
Frühlingsrolle
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1981
Erhaltene Danke: 365

[Win NT] 5.1 x86 6.1 x64
[Delphi] 7 PE, 2006, 10.1 Starter, Lazarus - [C#] VS Exp 2012 - [Android API 15] VS Com 2015, Eclipse, AIDE - [C++] Builder 10.1
BeitragVerfasst: Di 02.05.17 03:50 
Ich danke dir für diese übersichtliche und schnelle Anwendung. Für mich ist sie gerade deswegen reizvoll, da ich viele Dateien erstelle und diese auf externen Festplatten archiviere. So bin ich auf eine gewisse Übersichtlichkeit angewiesen.
Was mich außerdem noch interessiert, ist wie du an die Ordner- und Datei-Icons herankommst? Mit der Funktion SHGetFileInfo()? Wenn ich diese Funktion aufrufe, dauert es eine Weile, wenn ich "nur" Laufwerke angezeigt bekommen haben möchte, bei dir geht das doch schneller.

_________________
„Politicians are put there to give you the idea that you have freedom of choice. You don’t. You have no choice. You have owners. They own you. They own everything." (George Denis Patrick Carlin)
Martok Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Moderator
Beiträge: 3655
Erhaltene Danke: 594

Win XP x86, Win 8.1 x64
Lazarus Snapshot; Delphi 7,2007,XE; PHP (PHPEdit,PhpStorm); JS; Java(Eclipse)
BeitragVerfasst: Di 02.05.17 13:21 
Für Dateien ist das SHGetFileInfo, genau. Allerdings rufe ich die für jede Erweiterung nur einmal auf, die landen dann in einem Cache.
Ordner, Junctions und die Unknown und Free Blöcke sind aber einfach nur statisch zugeordnete Bilder aus einer ImageList (naja, aus einer Hybridliste - die ersten paar Elemente sind statische Bilder, dann werden die aus dem System angehängt. Ist aber nur so weil man dem TreeView ja nur eine Liste zuweisen kann).

In der Ordnerauswahl beim Start kommen die Grafiken auch aus der SystemImageList, irgendwelche Magie ist da nicht dabei :nixweiss:.

_________________
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."

Für diesen Beitrag haben gedankt: Frühlingsrolle
Frühlingsrolle
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1981
Erhaltene Danke: 365

[Win NT] 5.1 x86 6.1 x64
[Delphi] 7 PE, 2006, 10.1 Starter, Lazarus - [C#] VS Exp 2012 - [Android API 15] VS Com 2015, Eclipse, AIDE - [C++] Builder 10.1
BeitragVerfasst: Di 02.05.17 16:36 
Anders gesagt, du kochst auch nur mit Wasser. Die Zubereitung ist nur eine Andere. ;) Dankeschön für die Querverweise. Jetzt habe ich einen besseren Eindruck vom Ganzen.

_________________
„Politicians are put there to give you the idea that you have freedom of choice. You don’t. You have no choice. You have owners. They own you. They own everything." (George Denis Patrick Carlin)