PDA

Visualizza la versione completa : [DELPHI] Icona eseguibile appare diversa nella cartella di Esplora Risorse


vicky
18-01-2012, 15:38
Ciao!
Non riesco a capire perché l'eseguibile in delphi mostra correttamente l'icona che gli ho assegnato nella barra delle applicazioni ma poi nella cartella che contiene i vari files tra cui anche l'eseguibile l'icona cambia e diventa diversa. La metto in allegato. :)

alka
19-01-2012, 09:59
Potrebbe essere un problema legato all'icona, o meglio a uno dei suoi formati, che probabilmente non contiene l'immagine corretta per una certa dimensione di visualizzazione all'interno di Esplora risorse di Windows.

Occorre vedere se, cambiando dimensione delle icone nella vista, l'icona rimane invariata, e accertarsi (aprendolo con un programma apposito) che quell'immagine non sia effettivamente presente nell'icona, provando in ultimo a riassegnarla al progetto.

vicky
19-01-2012, 10:56
Ho fatto qualche verifica ed ho rifatto l'icona. Pensavo di aver risolto perché in effetti all'inizio avevo fatto l'icona con Photoshop...ma adesso l'ho rifatta con EasyIco, un vecchio programmino che non mi ha mai dato problemi in passato. L'anomalia rimane, anche se cambio le dimensioni di visualizzazione dell'icona in Esplora Risorse. (e succede sia in Win XP che in Win 7)
Io credo che ci sia qualcosa a livello del programma in Delphi perché inizialmente tutto era come previsto: icona nella barra degli strumenti ed icona nella cartella di esplora risorse. Poi la cosa ha smesso di funzionare ma non so ricollegarla ad un evento specifico. C'è modo di fare un "reset" senza rifare il progetto? Oppure c'è modo di togliere completamente l'icona dalla memoria del programma? perché se vado in opzioni del progetto nella scheda applicazioni non riesco a rimuovere l'icona...

alka
19-01-2012, 11:00
Potrebbe non essere un problema dell'icona: prova ad aprire direttamente l'eseguibile con un programma che esplori le sue risorse (ad esempio, ResourceHacker (www.angusj.com/resourcehacker/)) e verifica quali immagini effettivamente appaiono all'interno.

Magari è un "glitch" di Windows, un problema temporaneo di visualizzazione da parte del sistema operativo (quindi prova eventualmente anche su un altro PC, per sicurezza).

MItaly
19-01-2012, 11:05
Hai incluso nel file ico l'immagine nei tre formati canonici (16x16, 32x32, 48x48), in ordine decrescente di dimensioni?

vicky
19-01-2012, 11:08
Con questo programma che mi hai consigliato analizzando l'eseguibile alla voce "icon" risultano quattro icone : le prime tre sono immagini simili a quella che ho postato, la quarta è invece la mia vera icona. Cosa significa?

alka
19-01-2012, 11:45
Originariamente inviato da vicky
Con questo programma che mi hai consigliato analizzando l'eseguibile alla voce "icon" risultano quattro icone : le prime tre sono immagini simili a quella che ho postato, la quarta è invece la mia vera icona. Cosa significa?

Significa che l'icona è sbagliata in partenza, oppure che viene modificata in seguito in fase di compilazione da qualche parte nel programma (probabilmente dove c'è l'inclusione di un file di risorse .res).

vicky
19-01-2012, 16:39
Le icone nel file .res sono 4:
1) ew 1033
2) news 1033
3) ns 1033
4) mainicon 1040 (questa è la mia icona)
Se utilizzo un programma per la rimozione delle prime 3 icone che sono quelle di default di windows (ResourceBuilder trovato nel disco originale di Delphi 2006) si modifica l'icona nella cartella di esplora risorse, ma se poi ricompilo il programma compare nuovamente l'icona di default di Windows.
Io penso che come hai detto tu c'è qualcosa che accade durante la compilazione del programma e allora ti chiedo : ma quand'è che il file .res subisce modifiche durante la compilazione? Potrebbe essere qualche libreria inserita nella sezione interface delle mie unit?

alka
19-01-2012, 16:47
Originariamente inviato da vicky
Io penso che come hai detto tu c'è qualcosa che accade durante la compilazione del programma e allora ti chiedo : ma quand'è che il file .res subisce modifiche durante la compilazione? Potrebbe essere qualche libreria inserita nella sezione interface delle mie unit?

Cerca se da qualche parte nei sorgenti del progetto (e nei sorgenti correlati, ad esempio di altri componenti utilizzati) esiste una clausola simile a questa:


{$ xxx.res}

dove xxx rappresenta il nome di un file di risorse importato e incorporato nell'eseguibile, tralasciando quelli relativi ai Form dell'applicazione (che hanno un "*") e quello del progetto principale.

vicky
19-01-2012, 16:54
Avevo già fatto con Delphi una ricerca in tutti i files del progetto ed avevo trovato solo un riferimento ad un file .res che consiste in {$R *.res} nel file .dpr.
Ma non potrebbe essere che qualche libreria presente in uses (sezione interface) richieda un suo file di risorce che linka automaticamente?

Loading