Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Zwei Icons übereinander für eigene Datei-Erweiterung (wie bei einem Link) (https://www.delphipraxis.net/190158-zwei-icons-uebereinander-fuer-eigene-datei-erweiterung-wie-bei-einem-link.html)

blablab 5. Sep 2016 18:21


Zwei Icons übereinander für eigene Datei-Erweiterung (wie bei einem Link)
 
Hallo!

Ich möchte gerne das gleiche Verhalten wie bei einem Link haben. Also dass über dem normalen Icon unten links ein weiteres Icon angezeigt wird (der blaue Pfeil der nach oben rechts zeigt).

Gibts es eine Möglichkeit das irgendwie zB in der Registry so anzugeben?

Grüße
blablab

Luckie 5. Sep 2016 20:06

AW: Zwei Icons übereinander für eigene Datei-Erweiterung (wie bei einem Link)
 
Das sind sogenannte Overlay icons.

Assarbad 5. Sep 2016 21:57

AW: Zwei Icons übereinander für eigene Datei-Erweiterung (wie bei einem Link)
 
Willst du eine reine Konfigurationslösung oder kommt auch eine Shellerweiterung infrage?

blablab 6. Sep 2016 05:51

AW: Zwei Icons übereinander für eigene Datei-Erweiterung (wie bei einem Link)
 
Schön wäre eine Konfigurationslösung. Am liebsten würde ich 1:1 das Icon der normalen Windows-Links übernehmen.

Bzw. könnte ich mit einer ShellErweiterung mein Icon pro Datei komplett selbst zeichnen?

jaenicke 6. Sep 2016 07:55

AW: Zwei Icons übereinander für eigene Datei-Erweiterung (wie bei einem Link)
 
Mehr dazu findest du hier in der Doku:
https://msdn.microsoft.com/de-de/lib...(v=vs.85).aspx

Die benötigten Interfaces findest du bei Delphi in der Unit Winapi.ShlObj bzw. bei alten Versionen in der ShlObj.

Assarbad 6. Sep 2016 08:57

AW: Zwei Icons übereinander für eigene Datei-Erweiterung (wie bei einem Link)
 
Zitat:

Zitat von blablab (Beitrag 1346903)
Schön wäre eine Konfigurationslösung. Am liebsten würde ich 1:1 das Icon der normalen Windows-Links übernehmen.

Guckst du unter HKEY_CLASSES_ROOT\lnkfile\shellex\IconHandler ... da siehst du, daß für die Shortcuts eine Shellerweiterung verantwortlich ist. In shell32.dll, wenn ich mich recht entsinne, findest du das gewünschte Symbol, welches du selbstverfreilich auch von deiner Erweiterung aus laden kannst. Die Kunst wäre nun, für jede Windows-Version den korrekten Index des Symbols zu finden, da dieser variieren kann.

Für den Fall, daß eine Konfigurationslösung gewünscht ist, könnte ich ohnehin nicht mehr weiterhelfen, da ich nicht weiß wie das geht (wenn es gehen sollte). Shellerweiterungen habe ich hingegen schon geschrieben und gewartet.

Zitat:

Zitat von blablab (Beitrag 1346903)
Bzw. könnte ich mit einer ShellErweiterung mein Icon pro Datei komplett selbst zeichnen?

Im Endeffekt ja. Falls du TortoiseGit/SVN/Hg benutzt, kannst du dir das live anschauen indem du ein Repository auscheckst und dann eine oder mehrere Dateien veränderst. Das Overlay-Icon sollte sich entsprechend des neuen Status dann ändern.

Besser als die Dokumentation von MSDN finde ich übrigens die Serie von Michael Dunn (am Ende des Artikels geht es jeweils zum Folgeartikel). Allerdings sollte man zumindest genug C++ verstehen um die Konzepte in Delphi zu übertragen.

Achtung: Shellerweiterungen werden für alles mögliche verwendet. Bspw. um einen neuen Namensraum im Dateimanager einzublenden oder eben für Overlay-Icons, aber auch um die Kontextmenüs je nach "Datei" anzupassen. Auch verwenden alternative Dateimanager (also nicht nur Windows Explorer) vielfach Shellerweiterungen. Darauf sollte man Rücksicht nehmen.


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