Zitat: |
Delphi-Quelltext
|
Das klappt so natürlich nicht. Bzw. sollte es irgendwann mal so eine Zeile in deinem Code geben, bis dahin musst du aber noch einiges vorarbeiten
Also Windows speichert solche Dinge grundsätztlich irgendwo in der Registry. Das dumme ist nur: Wo?! Außerdem: Du kannst nicht einfach sagen diese .bmp Datei soll jetzt dies oder jenes Icon haben. Das geht nur global. Sprich, alle .bmp Dateien werden fortan dieses Icon haben. Eine Ausnahme stellen natürlich Ordner und Verknüpfungen dar.
Wie soll dein Programm ablaufen?
- Du musst den Registrykey rausfinden indem gespeichert wird welches Icon für den entsprechenden Dateityp oder den entsprechenden Ordner verwendet wird.
- Dann nimmst du einen OpenPictureDialog. Dort soll der Benutzer dann das Icon auswählen das er haben möchte.
- Der Pfad des Icons muss dann in den Registrykey geschrieben werden.
Meine Tipps:
1.) Finden des Registrykeys:
www.swissdelphicente...showcode.php?id=2034 Kopier dir mit diesem Code ein kleines Programm zusammen, das alle Registrykeys auflistet die sich in den letzten 5 Minuten geändert haben. Wenn du dann das Icon manuell änderst (über die Windowsdialoge) wird der richtige Regkey angezeigt werden.
2.) Der OpenPictureDialog befindet sich im Reiter 'Dialogs' und funktioniert genauso wie jeder andere Dialog auch. Das ist eine Zeile, deswegen post ich die dir jetzt mal:
Delphi-Quelltext
1: 2: 3: 4: 5:
| var iconpfad : string; begin if OpenPictureDialog1.execute then iconpfad := OpenPictureDialog1.FileName; end; |
3.) Das schreiben in die Registry ist ebenfalls sehr einfach, denn es gibt hunderte Codeschnipsel dazu im Netz. Sehr gut ist z.B.
dieser.
Beachte was ich im Eingang gesagt habe: Eine einzelne x-beliebige Datei kann (ohne weiteres) kein eigenes Icon bekommen. Es sei denn es ist eine Verknüpfung oder ein Ordner.
Ps.: Gibts da ne API-Funktion zu?