Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Icon wird im Explorer nicht richtig angezeigt (https://www.delphipraxis.net/168917-icon-wird-im-explorer-nicht-richtig-angezeigt.html)

KNDelphi 18. Jun 2012 13:13

Icon wird im Explorer nicht richtig angezeigt
 
Hallo zusammen,

gleich zu Beginn: mir ist bewusst, dass es diese Frage schon mal hier gab.

Mein Problem ist folgendes:
Wenn ich mein Delphi-Projekt kompiliere wird im Explorer das falsche Icon angezeigt.
Sobald die Applikation aber gestartet wird steht im Programm (links oben) und in der Taskbar das richtige Symbol.
Ich habe bereits alles nach eingebundenen .res-Dateien durchsucht aber keine gefunden die dort nicht sein soll. Die Ressource-Dateien die ich einbinde enthalten auch das richtige Icon.
Die Ressourcen der Exe-Datei habe ich mir ebenfalls angeschaut und hier findet sich das falsche Icon unter MAINICON. Allerdings fehlt hier vom richtigen Icon, das dann später in der Taskbar angezeigt wird jede Spur...

An was könnte das liegen, dass nur der Explorer das falsche Icon anzeigt?
Und woher kennt die Exe dann das Symbol für die Taskbar, wenn es nicht in dessen Ressourcen auftaucht?

Mit freundlichen Grüssen

KNDelphi

DeddyH 18. Jun 2012 13:16

AW: Icon wird im Explorer nicht richtig angezeigt
 
Bist Du sicher, dass die Ressource nicht das richtige Icon enthält? Bzgl. des Explorers fällt mir spontan der Iconcache ein, irgendwo hier im Forum gab es auch eine Batch-Datei, mit der man den ganz einfach leeren konnte.

Luckie 18. Jun 2012 13:18

AW: Icon wird im Explorer nicht richtig angezeigt
 
Benenne die Exe mal um und wieder zurück.

KNDelphi 18. Jun 2012 13:20

AW: Icon wird im Explorer nicht richtig angezeigt
 
Erstmal Danke für die schnellen Antwort :)

@DeddyH
bezüglich der Ressourcen in der Exe-Datei bin ich sicher, da ich sie mit einem Programm angeschaut habe (resxplorer).

Den IconCache habe ich ebenfalls schon gelöscht hat aber keine Abhilfe gebracht.

@Luckie
Exe umbenannt habe ich auch schon --> leider kein Erfolg

MfG

KNDelphi

Popov 18. Jun 2012 13:31

AW: Icon wird im Explorer nicht richtig angezeigt
 
Also, das Icon für die Taskbar kommt von Application.Icon. Evtl. wird es im Programm neu zugewiesen.

ChrisE 18. Jun 2012 13:34

AW: Icon wird im Explorer nicht richtig angezeigt
 
Hallo KNDelphi,

wenn du eine eigene RES-Datei einbindest die ein ICON beinhaltet welches ein MAINICON sein soll, wird dieses wahrscheinlich vom Delphicompiler ignoriert. Zumindest XE2 gibt sicher dafür eine Meldung aus, dass diese "Teil-Resource" ignoriert wird bzw. welche verwendet wird. Delphi selber erstellt ja auch eine RES-Datei in der das Icon des Projekt als MAINICON eingetragen wird.

Die Frage die ich hätte wäre allerdings:
  • Wie bindest du die RES-Datei ein
  • Wie sieht die RC-Datei dazu aus
  • Hat das Hauptformular zur Designzeit das gewünschte Icon
  • Ist das Icon nirgends in den Resourcen der EXE-Datei zu finden (anderer Name als MainIcon)

Gruß, Chris

KNDelphi 18. Jun 2012 13:41

AW: Icon wird im Explorer nicht richtig angezeigt
 
@ChrisE

Zitat:

•Wie bindest du die RES-Datei ein
Ich binde keine selbsterstellte .res-Datei ein sondern lediglich die von Delphi (habe mich vlt. bisschen blöd ausgedrückt), indem ich {$R .RES} in meinen Source-Code schreibe.

Zitat:

•Hat das Hauptformular zur Designzeit das gewünschte Icon
Das Hauptformular hat sowohl zur Laufzeit als auch zur Designzeit das gewünschte Symbol, lediglich im Explorer wird es falsch angezeigt.

Zitat:

•Ist das Icon nirgends in den Resourcen der EXE-Datei zu finden (anderer Name als MainIcon)
Nein, nirgends, habe mir allte Dateien angeschaut, aber nichts zu finden...

Zitat:

•Wie sieht die RC-Datei dazu aus
Wo finde ich diese RC-Datei?

MfG

DeddyH 18. Jun 2012 13:44

AW: Icon wird im Explorer nicht richtig angezeigt
 
Ist das ein Konsolenprogramm? Normalerweise bindet Delphi die *.res ja sowieso automatisch ein.

KNDelphi 18. Jun 2012 13:45

AW: Icon wird im Explorer nicht richtig angezeigt
 
@Popov

Nein, habe gerade nochmal nachgeschaut und keine Stelle gefunden an der das Icon neu zugewiesen wird.
Aber Danke für die Information, es hätte gut sein können, dass ich da i-wo noch eine Zuweisung gemacht hätte :)

@DeddyH
Ne, das ist eine ganz normale Applikation.
Auf jeden Fall steht die Kompileranweisung {$R .res} nur einmal im Code, es wird also nichts doppelt geladen oder Ähnliches.

ChrisE 18. Jun 2012 13:56

AW: Icon wird im Explorer nicht richtig angezeigt
 
Hallo KNDelphi,

Zitat:

Zitat von KNDelphi (Beitrag 1171436)
Ich binde keine selbsterstellte .res-Datei ein sondern lediglich die von Delphi (habe mich vlt. bisschen blöd ausgedrückt), indem ich {$R .RES} in meinen Source-Code schreibe.

ich denke ich weiß wo der Hund begraben liegt :-)

Also zunächst kann man jedem Fenster ein eigenes Icon zuweisen über den Objektinspektor. Ist dieses Fenster das erste Formular das erzeugt wird (Mainform) wird das entsprechende Icon auch unten in der Taskbar angezeigt.
Um der EXE-Datei das Icon zu verpassen war dies aber nicht ganz der richtige weg. Hierfür findest du in Delphi in den Prjektoptionen einen Punkt wie z.B. "Erscheinungsbild". Dort kannst du ein ApplicationsIcon angeben. Dieses wird dann in die Delphi-Eigene-RES-Datei geschrieben. Die DPR (die Projektdatei) wiederum bindet diese Resource im normalfall schon ein ohne dein zutun. Hier solltest du eine Zeile finden wie diese
Delphi-Quellcode:
{$R *.RES}
. Du musst also nicht mehr tun außer das Icon in den Projektoptionen anzupassen. Außerdem erhält dadurch jedes Formular das kein eigenes Icon hat, das Icon der Applikation. Also könntest du das von deinem Hauptformular wieder aus dem Objektinspektor löschen.

Zitat:

Zitat von KNDelphi (Beitrag 1171436)
Wo finde ich diese RC-Datei?

In diesem Fall nirgends, dass es keine eigenständige Resource ist sondern die von Delphi. :-)

Gruß, Chris

KNDelphi 18. Jun 2012 13:58

AW: Icon wird im Explorer nicht richtig angezeigt
 
@ChrisE

Ich habe natürlich das Icon über Projekt --> Optionen --> Applikation --> LoadIcon eingebunden und nicht nur im Objektinspektor für das jewelige Formular.
Bei LoadIcon wird auch das richtige Icon angezeigt.

Edit: Mein Hauptformular besitzt kein eigenes Icon.

ChrisE 18. Jun 2012 14:05

AW: Icon wird im Explorer nicht richtig angezeigt
 
Hallo KNDelphi,

welche Delphiversion verwendest du und welches Icon wird im Explorer angezeigt?

Gruß, Chris

KNDelphi 18. Jun 2012 14:11

AW: Icon wird im Explorer nicht richtig angezeigt
 
Ich verwende Delphi 7
und im Explorer wird dieses Icon angezeigt http://www.downloadatoz.com/_imgbank...t-Box.icon.gif

ChrisE 18. Jun 2012 14:33

AW: Icon wird im Explorer nicht richtig angezeigt
 
Hallo KNDelphi,

wenn du ein neue Projekt erzeugst und diesem dann dein neues gewünschtes Icon verpasst und dieses Prjekt dann erzeugst, passiert dann das selbe? Es könnte ja auch die Icon-Datei sein.

Gruß, Chris

KNDelphi 18. Jun 2012 14:43

AW: Icon wird im Explorer nicht richtig angezeigt
 
@ChrisE

Nein, der Fall tritt nur bei diesem Projekt auf, was die Sache nicht gerade vereinfacht :D

jaenicke 18. Jun 2012 14:48

AW: Icon wird im Explorer nicht richtig angezeigt
 
Benenne die .res Datei am besten einmal um und öffne das Projekt neu. Dann weise das Icon erneut zu. Geht es dann?

KNDelphi 18. Jun 2012 14:52

AW: Icon wird im Explorer nicht richtig angezeigt
 
@Jaenicke

Hat leider auch nicht zum Erfolg geführt.
Er hat zwar die .res neu erstellt, es ist auch das richtige Icon drin, aber im Explorer wird es immer noch falsch angezeigt...

Bernhard Geyer 18. Jun 2012 14:55

AW: Icon wird im Explorer nicht richtig angezeigt
 
Zitat:

Zitat von KNDelphi (Beitrag 1171456)
Er hat zwar die .res neu erstellt, es ist auch das richtige Icon drin, aber im Explorer wird es immer noch falsch angezeigt...

Hier könnte der Windows-Icon-Cache-Fehler zuschlagen.
Bennen mal die Exe um. Ändert sich das Icon?

ChrisE 18. Jun 2012 14:59

AW: Icon wird im Explorer nicht richtig angezeigt
 
Hallo KNDelphi,

also ich fasse zusammen:
  • Es wird Delphi 7 verwendet
  • Icon-Datei funktioniert bei neuen Projekten
  • Icon wurde über Projektoptionen hinzugefügt
  • In der DPR-Datei steht {$R *.RES} sonst nirgends
  • In der RES-Datei (gleicher Name wie Projekt) sieht man das gewünschte Icon als MainIcon (per ResExplorer)
  • Die EXE-Datei hat das StandardIcon von Delphi 7 während in der Taskleiste und im Programmfenster das gewünschte Icon zu sehen ist
  • Der Icon-Cache wurde geleert / die EXE-Datei wurde umbenannt
  • Hauptformular hat kein eigenes Icon
  • Icon Ist auch zur Designzeit sichtbar beim Hauptformular

Ich weiß gerade nicht weiter - Sorry :-(

KNDelphi 18. Jun 2012 15:02

AW: Icon wird im Explorer nicht richtig angezeigt
 
@Bernhard

Das mit dem IconCache wurde schon von DeddyH bereits erwähnt, aber hat leider auch nichts gebracht...

@ChrisE
Das passt alles was du aufgelistet hast.


Das Problem tritt nun auch bei meinen Kollegen auf, die mehr als 10 Jahre Delphi-Erfahrung haben und auch keine Lösung wissen.

Trotzdem schonmal Danke für eure Hilfe ;)

nahpets 18. Jun 2012 16:57

AW: Icon wird im Explorer nicht richtig angezeigt
 
Hallo,

das Icon ist nicht von Delphi 7 sondern das Standardicon von Delphi 6. Ist das Projekt schon was älter?

Schau dir bitten mal den Quelltext des Hauptformulares zum Programm an, gibt es dort irgendwo ein Icon (meist ca. 10 Zeilen, die nur aus Ziffern bestehen)?

Du meinst im Explorer das Icon zur Exe, nicht wahr und nicht das Icon zur DPR. Bei letzterem läge die Ursache in der Registry.

Hast Du im Delphi-Menü mal unter "Projekt" -> "Alle Projekte erzeugen" ausprobiert, damit wirklich alles neu gemacht wird?

Eins darf man aber nicht vergessen, es heißt im Quelltext ganz klar
Delphi-Quellcode:
{$R *.res}
Das heißt, es werden alle auffindbaren Resourcedateien genutzt und nicht nur die <projektname>.res.

Ändere doch mal bitte den * in den Projektnamen um? Was passiert dann?
(Das geht natürlich nur dann, wenn keine weiteren Resourcedateien eingebunden werden müssen.)

KNDelphi 19. Jun 2012 06:08

AW: Icon wird im Explorer nicht richtig angezeigt
 
@nahpets

Ja, das Projekt hat schon ein paar Jahre auf dem Buckel ;)

Zitat:

Du meinst im Explorer das Icon zur Exe
genau

Zitat:

Hast Du im Delphi-Menü mal unter "Projekt" -> "Alle Projekte erzeugen" ausprobiert, damit wirklich alles neu gemacht wird?
Ja, habe ich auch gemacht, sogar schon mehrmals

Zitat:

Ändere doch mal bitte den * in den Projektnamen um? Was passiert dann?
Leider keine Änderung...

Zitat:

Schau dir bitten mal den Quelltext des Hauptformulares zum Programm an, gibt es dort irgendwo ein Icon (meist ca. 10 Zeilen, die nur aus Ziffern bestehen)?
Konnte nichts finden

Ich werde die Suche jetzt erstmal einstellen, da es für etwas relativ unwichtiges zu viel Zeit in Anspruch nimmt :-P
Vielen Dank für eure Hilfe ;)

jaenicke 19. Jun 2012 07:54

AW: Icon wird im Explorer nicht richtig angezeigt
 
Du kannst mir, wenn du möchtest, einmal die Anwendung per PN schicken, dann schaue ich mir mal an was da drin steckt. ;-)

Kommt irgendeine Warnung beim Linken? (Sowas wie Ressource ignoriert oder so vor allem)

KNDelphi 19. Jun 2012 10:07

AW: Icon wird im Explorer nicht richtig angezeigt
 
@Jaenicke
Ich glaube nicht, dass du dir die Anwendung anschauen willst, da sie aus ca. 150Units und mehreren tausen Zeilen Code besteht ;)
Zudem darf ich die Anwendung nicht veröffentlichen...
Aber danke für das Angebot :)

Mfg

jaenicke 19. Jun 2012 10:14

AW: Icon wird im Explorer nicht richtig angezeigt
 
Ich meinte nicht den Quelltext (dass du den nicht rausgeben kannst, davon bin ich ausgegangen), sondern die Anwendung selbst, nur die .exe, z.B. ne Trial-Exe oder ne entkernte, die gar nicht funktioniert, ist ja egal. ;-)

Poelser 10. Nov 2014 15:24

AW: Icon wird im Explorer nicht richtig angezeigt
 
Moin,

nun mache ich in diesem Thread mal weiter, da ich das gleiche Problem nach einem Umstieg von Delphi 2007 auf XE 4 habe.

Öffnet man die Exe im Resource-Editor von Anders Melander (nicht den XN-ResourceEditor, der zeigt das nicht!), dann befindet sich unter Icon/MainIcon tatsächlich das gewählte Programmicon - aber auch ein leeres 16*16-Icon als erste Variante. Das ist wohl die Quelle des Übels, denn unter Win XP und Win 7 macht das nix, wohl aber unter Win 8.1 - da ist im Explorer nämlich ein leeres Icon.

Hat denn noch keiner das so erkannt? Wie kommt der Compiler denn dazu? Wie kann ich das denn abstellen? - Fragen über Fragen, und Tante Google hat leider zu diesem Problem auch keine Antworten.

CU, der Pølser

Sir Rufo 10. Nov 2014 16:49

AW: Icon wird im Explorer nicht richtig angezeigt
 
Kann ich nicht nachvollziehen.

Hast du schon mal ein neues Projekt erstellt und dir das angeschaut? Ab Version (was weiß ich) ist das MainIcon ein MultiRes-Icon mit 16-256 Pixeln. Vermutlich kommt da was mit den D2007 Projekteinstellungen durcheinander.

mm1256 10. Nov 2014 19:11

AW: Icon wird im Explorer nicht richtig angezeigt
 
Hallo,

werden in dem Projekt ausschließlich "On-Board"-Bibliotheken verwendet, oder auch welche von Drittanbietern? Ich hatte ein nahezu identisches Problem auch mal und da war die Ursache es eine doppelte Ressource in einer Print-Bibliothek.

Poelser 11. Nov 2014 07:32

AW: Icon wird im Explorer nicht richtig angezeigt
 
Neues Projekt habe ich noch nicht probiert, aber wir tendieren mittlerweile zu einem Problem mit Drittanbietern. Wir haben immerhin solche Sachen wie TMS und DevExpress im Einsatz. Irgendwo hatte ich etwas über TMS mit einem Forumsbeitrag gelesen, konnte dem Link aber nicht folgen, da wir keine aktuelle Version haben.

Wenn das die Lösung sein sollte, dann würden wir natürlich updaten. Aber man updated ja nicht pauschal alles, was man so im Einsatz hat.

Im Übrigen wird auch noch ein Icon mit der Bezeichnung REMINDERBELL eincompiliert, allerdings kann ich im ganzen Projekt und Komponentenverzeichnis per Grep keine Datei mit diesem Begriff finden. Strange...

CU, der Pølser

Poelser 11. Nov 2014 10:33

AW: Icon wird im Explorer nicht richtig angezeigt
 
Also, die REMINDERBELL hab' ich nun doch gefunden, die stammt aus den Schedulern der DevExpress-Komponenten.

mm1256 11. Nov 2014 15:02

AW: Icon wird im Explorer nicht richtig angezeigt
 
Zitat:

Zitat von Poelser (Beitrag 1279328)
Wenn das die Lösung sein sollte, dann würden wir natürlich updaten. Aber man updated ja nicht pauschal alles, was man so im Einsatz hat.

Um diesem Updatewahn teilweise umgehen zu können, verwende ich ausschließlich Komponenten mit vollständigem Quelltext.

Poelser 11. Nov 2014 15:19

AW: Icon wird im Explorer nicht richtig angezeigt
 
Ja, das ist sicher die bessere Wahl, aber ich habe leider nicht immer Einfluss darauf :( Hier ist leider die Problematik, dass der Mist schon beim Kompilieren wahrscheinlich durch irgendwelche Packages verursacht wird.

striderx 15. Nov 2014 13:25

AW: Icon wird im Explorer nicht richtig angezeigt
 
Ich hatte dieses Problem auch einmal - bei mir hat Folgendes geholfen:

Ändere mal unter Systemsteuerung\Anzeige den Skalierungswert und setze ihn danach wieder zurück (jeweils mit Ab- und Anmelden).


Das hört sich vielleicht komisch an, ist aber so. Anscheinend hat Windows nocht einen weiteren Icon-Cache.

berens 3. Dez 2018 10:08

AW: Icon wird im Explorer nicht richtig angezeigt
 
Liste der Anhänge anzeigen (Anzahl: 2)
*Staub wegpust*

Hallo Leute,
meine Erkentnisse für die Nachwelt:

1) Evtl. liegt das Symbol trotz passender Größe nicht im richtigen Format/Farbtiefe/was-auch-immer vor. In IcoFX das Icon normal aufmachen, und dann mit dem Menü [Symbol] - [Windows-Symbol aus Datei erstellen... Ctrl-I] speichern.
Anhang 50379
Anhang 50380

Um das Original zu schützen, habe ich die Datei z.B. "MeinIcon_Windows.ico" genannt. Die Benennung hat natürlich keinerlei Auswirkung auf die Funktionalität, aber ich weiß eindeutig, was ich "per Hand" gezeichnet habe (Original), und was IcoFX extra für Windows berechnet hat (_windows.ico).

2) Icon in Delphi als MAINICON neu zuweisen (Projekt - Optionen - Anwendung - Symbol - [Symbol laden]). Hier jetzt natürlich die "MeinIcon_Windows.ico" verwenden! [Ok] - Projekt Alles Speichern etc.

3) [Projekt] - [Projektname erzeugen]
4) [Projekt] - [Projektname compilieren] (Sicher ist sicher ;) )

5) Diese Befehle am besten als .bat-Datei auf der Festplatte speichern, und nach jeder Icon-Änderung an einem bestehenden Projekt (ggf. als Administrator) ausführen. Achtung: Ggf. müssen das die Kunden nach einem Update mit neuem Icons in deinem Programm auch einmal ausführen um den Icon-Cache zu löschen, aber Windows scheint "nach ein paar Tagen" dann auch irgendwann so deine neuen Icons zu laden...

Danke an https://praxistipps.chip.de/symbolca...so-gehts_30927
Code:
@echo off
taskkill /f /IM explorer.exe
timeout 1
CD /d %userprofile%\AppData\Local\Microsoft\Windows
del /f /s /q Explorer\iconcache*.* 
Start explorer.exe


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