2011-08-29 5 views
5

Qual è il modo corretto per definire un'icona compatibile con Win7 in un'applicazione Delphi? (dimensioni variabili sul desktop)Icona compatibile con Windows 7 impostata in un'applicazione Delphi 2007

Ho progettato un'icona 256 * 256 quindi ho realizzato le varianti 16 * 16, 24 * 24, 48 * 48. (nella guida di Microsoft UX, sembrano dire che queste dimensioni dovrebbero essere incluse per una visualizzazione corretta sul desktop).

Ho inserito tutte le varianti di icone in un documento a più livelli in Gimp ed ho esportato tutto il materiale come un ico. Poi l'ho messo come icona dell'applicazione nelle opzioni del progetto, seguendo il modo retto di assegnare un'icona a un'applicazione.

FInally Ho messo uno shorcut su Win desktop (win7) ma quando si effettua "Ctrl + Wheel" (ridimensionamento delle icone del desktop, se ancora non lo conosci ...) sul desktop (Win 7) , l'icona corretta non viene visualizzata, dopo 48 * 48 mantiene le stesse dimensioni (ho il sospetto che sia utilizzata solo la versione 48 * 48).

+0

La versione 256px deve essere un PNG. È tuo? Consiglierei IcoFX per fascicolare le varie immagini in un file .ico. Inoltre, alcune versioni precedenti del compilatore di risorse di Delphi non supportano le icone PNG a 256px. Utilizzare MS rc, se invece è il caso. –

+0

No la versione 256 px non è (ancora ...) compressa. – az01

+0

In realtà, penso che il sistema accetti un bmp da 256 px. Comunque non è un grande piano però. Sono enormi! –

risposta

8

L'icona di 256 pixel dovrebbe essere un'icona PNG compressa. Sospetto che il compilatore di risorse fornito con Delphi 2007 non apprezzi questo formato, quindi è necessario utilizzare il compilatore di risorse MS, rc. L'icona dovrebbe essere denominata MAINICON. Detto questo, ho il sospetto che una bitmap a 256px funzionerà, sarà semplicemente molto grande.

Cosa c'è di più, IIRC, l'IDE di Delphi non piace 256px PNG icone quindi non è una buona aggiunta l'icona per il progetto attraverso l'IDE. È necessario creare il file .res autonomamente e collegarlo con una direttiva {$R ...}.

Infine, è possibile che il tuo file .ico non sia corretto. L'immagine a 256px viene effettivamente memorizzata con larghezza e altezza uguali a 0 perché quel campo è di dimensioni in byte e 0 era precedentemente non valido. Forse questo è ciò su cui l'IDE gagola. Controlla il file .ico con uno strumento diverso, ad es. IcoFX.

Ci possono essere altri problemi: questi sono solo quelli che posso ricordare di aver incontrato nel corso degli anni. Se dovessi indovinare quale problema ti stava mordendo, direi che è stata l'incapacità dell'IDE di gestire le icone a 256px.

Credo che l'IDE sia migliorato progressivamente in questo settore nelle versioni più recenti, ma anche in D2010, che attualmente utilizzo, non è perfetto.

+0

Ho usato il compilatore di risorse fornito in XE2 beta per compilare il set di icone. È lo stesso di Microsoft, tranne per il fatto che non ho bisogno dei file h. Compila la rc ... in effetti il ​​problema rimane ancora. È solo che i dati di D2007-output-exe RC non gestiscono le risorse compresse ... non c'è modo di cambiarlo. Anche in ResHack non c'è modo di sostituire la res ... Non è gestito nelle vecchie versioni ... – az01

+0

I ' non ho XE2 ma mi aspetterei che brcc32 sia ancora diverso da MS rc. Ho usato con successo le icone compresse con rc per alcuni anni. –