Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Mainicon unter Windows 7 (https://www.delphipraxis.net/139918-mainicon-unter-windows-7-a.html)

Roaster 8. Sep 2009 12:46


Mainicon unter Windows 7
 
Hi,

ich versuche schon seit einiger Zeit das Mainicon (Unter Projekt-Optionen hinzugefügt), so zu entwerfen, dass es unter Vista/Windows 7 korrekt aussieht. Korrekt bedeutet für mich, dass wenn ich mit Alt+Tab umschalte, ich ein großes Icon habe und nicht ein (wahrscheinlich) hochskaliertes. Weiterhin sieht es in der Taskleiste von Win7 eher bescheiden aus und nicht so, wich ich es mit Axialis IconWorkshop 6.5 entworfen habe.

Ich habe in meiner Icon (.ico) Datei alles Format drin: 16x16 32x32, 48x48, 128x128 und sogar 256x256. Letzteres Format sogar komprimiert. Dieses Icons habe ich dann in den Projektoptionen hinzugefügt und kompiliert und in Wind7/Vista getestet.

Aber es sieht mehr oder weniger so aus, als ob die beiden OSs das Icon nicht korrekt finden oder benutzen.

Was mache ich hier falsch? Welche Formate benötigt Win7/Vista denn nun um alles korrekt zu verwenden? Ich benutze Turbo Delphi Pro/BDS2006.

holliesoft 8. Sep 2009 14:27

Re: Mainicon unter Windows 7
 
Hi,

soweit ich weiß, unterstützt Turbo Delphi noch nicht die Icon-Variante "256*256 Pixel PNG komprimiert". Das 256 Pixel Icon funktioniert aber, wenn Du es unkomprimiert benutzt.

Gruß
Patrick

Roaster 8. Sep 2009 14:29

Re: Mainicon unter Windows 7
 
Hi,

das könnte sein, nur hatte ich auch schon mal probiert das Icon nachträglich in die EXE mit ReplaceVistaIcon ReplaceVistaIcon zu kopieren und dies zeigte am Ende das gleiche Ergebnis.

Assertor 8. Sep 2009 14:31

Re: Mainicon unter Windows 7
 
Hi Roaster,

Delphi unterstützt leider durch die Bank weg (Dx - D2010) keine Projekticons in der Auflösung von 256x256px. Es wird immer skaliert. Über die Projektoptionen ist bei 64px Schluß, der Bug ist bekannt und wird leider als nicht wichtig erachtet. Es gibt auch keine Fehlermeldung beim Zuweisen, nur die exe enthält später nichts gescheites > 64px, jedenfalls erinnere ich mich an meine Tests so.

Bis D2006/2007 können Icons in Resourcen in Delphi zusätzlich keine komprimierten (256px) PNGs enthalten, daran scheidert der BRCC32 (bei RC Typ ICON).

Embarcadero/CodeGear hat soweit ich mich erinnere erst mit Delphi 2009 den Microsoft Resource Compiler lizenziert. Damit lassen sich auch direkt 256px PNG compressed Icons als Resource kompilieren.

Möglichkeiten also:
1) Das RES file mit dem RC aus dem MS SDK erstellen und einbinden (z.B. als Icon Groupe ICON) und die IconGruppe MAINICON aus der exe nach dem Build entfernen

2) Ab D2009: Das RC mit 256px PNG compressed ICON kann zum RES kompiliert werden und als alternative IconGruppe in die exe eingebunden werden, auch hierbei muß die IconGruppe MAINICON nach dem Build entfernt werden.

3) Alternativer Weg: Nach dem Build die IconGruppe MainIcon in der exe austauschen, z.B. durch ResHacker

Mit allen Wegen wird im Flip3d, Explorer etc das hochauflösende Icon sichtbar. Ich selbst verwende den 2. Weg. Im PostBuild wird die Delphi-Icongruppe MAINICON vollständig entfernt.

Nachtrag: Es ist also zu unterscheiden zwischen dem Bug die Icons in den Projektoptionen zuzuweisen und dem richtigen Resource Compiler, der auch mit PNG Icons umgehen kann.

Zu Deinem Problem im Explorer: Stichwort "Icon Cache". Kopiere die Datei in ein anderes Verzeichnis, u.U. ist auch ein Neustart notwendig bevor Du das richtige Icon siehst.

Gruß Assertor

himitsu 8. Sep 2009 14:48

Re: Mainicon unter Windows 7
 
Wenn man die Projektresource {$R *.res} wegläßt, dann dürfte der Linker doch auch keine Icon-Resourcen einbinden.
Und in diesem Frall würde es doch reichen, wenn man selber eine Resource, mit den gewünschten Icons und eventuell noch der Versionsinfos (welche dann auch weg wären) nutzt.

Dann müßte man zumindestens nach dem Compilieren nix mehr ändern.

(ein Beispiel für 'ne eigene Versions-Resource findet mal in meinem Manifest-Creator)

Assertor 8. Sep 2009 14:59

Re: Mainicon unter Windows 7
 
Hi himitsu,
Zitat:

Zitat von himitsu
Wenn man die Projektresource {$R *.res} wegläßt, dann dürfte der Linker doch auch keine Icon-Resourcen einbinden.
Und in diesem Frall würde es doch reichen, wenn man selber eine Resource, mit den gewünschten Icons und eventuell noch der Versionsinfos (welche dann auch weg wären) nutzt.

Richtig, kann ich aber nicht nutzen: Ich will automatisch inkrementierende Build-Nummern in der IDE. Eine VersionInfo oder Manifest ist schnell geschrieben, aber die Nr.-Automatisierung geht sonst nur über externen Buildprocess (make, ant o.ä.).

Nachtrag: Gut, man könnte das über das PreBuild Ereignis lösen, aber das Entfernen des Delphi-Helms ist für mich einfacher ;)

Gruß Assertor

holliesoft 8. Sep 2009 15:00

Re: Mainicon unter Windows 7
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Assertor
Hi Roaster,

Delphi unterstützt leider durch die Bank weg (Dx - D2010) keine Projekticons in der Auflösung von 256x256px. Es wird immer skaliert. Über die Projektoptionen ist bei 64px Schluß, der Bug ist bekannt und wird leider als nicht wichtig erachtet. Es gibt auch keine Fehlermeldung beim Zuweisen, nur die exe enthält später nichts gescheites > 64px, jedenfalls erinnere ich mich an meine Tests so.

Sicher? Schau Dir mal den Screenshot an... Wenn das große gelbe Notizzettel-Icon hochskaliert ist, dann frage ich mich...

1. Welchen sauguten Algorithmus benutzt Windows 7 dafür? Den will ich auch ;-)
2. Wieso wird das Delphi-Projektdatei-Icon nicht hochskaliert?

Gruß
Patrick

//EDIT

Unkomprimiertes Icon, 256 Pixel, 32bit Farbtiefe, erstellt mit IcoFX und über die Projektoptionen eingefügt

Assertor 8. Sep 2009 15:05

Re: Mainicon unter Windows 7
 
Zitat:

Zitat von holliesoft
Sicher? Schau Dir mal den Screenshot an... Wenn das große gelbe Notizzettel-Icon hochskaliert ist, dann frage ich mich...

Um welchen Icon-Typ handelt es sich? Ein Screenshot sagt nun wirklich garnichts... Welche Auflösungen, Farbtiefen und Kompression hat das Icon?

Fakt bleibt trotzdem, BRCC32 kommt mit png compressed Icons als Resourcetyp ICON nicht zurecht:
http://qc.embarcadero.com/wc/qcmain.aspx?d=45574
http://qc.embarcadero.com/wc/qcmain.aspx?d=73885

Du kannst in D2007 ein 256px Icon wohl als uncompressed zuweisen, da ruder ich etwas zurück - das geht auch in D2006.

Auf die schnelle finde ich die Information nicht wieder, es entspricht aber trotzdem meiner Erfahrung: Es gibt (gab?) wohl ein Problem beim Schreiben der Icons in die Projektresource, wenn diese über die Projektoptionen zugewiesen wurde. Dies betrifft Icons mit hoher Auflösung und Kompression.

Gruß Assertor

patti 8. Sep 2009 15:09

Re: Mainicon unter Windows 7
 
Benutze zum Erstellen von Icons IcoFX, ein Programm, das ich mal im Internet gefunden hab. In den Einstellungen habe ich "Compress 256x256 images for Windows Vista" deaktiviert. Nach dem Erstellen des Icons (allerdings nicht als PNG) kann ich es in den Projektoptionen als Icon wählen und auf dem Desktop und in Ordnern etc. wird es (zumindest unter Vista - wie es unter Win 7 ist, weiß ich leider nicht) richtig dargestellt :gruebel:

Patti

holliesoft 8. Sep 2009 15:27

Re: Mainicon unter Windows 7
 
Zitat:

Zitat von Assertor
Wie ist das Icon denn in die EXE gekommen und um welchen Typ handelt es sich?

Sorry, mein Fehler, hab die Infos vergessen... hab meinen Beitrag oben editiert :-)

Zitat:

Zitat von patti
Benutze zum Erstellen von Icons IcoFX, ein Programm, das ich mal im Internet gefunden hab. In den Einstellungen habe ich "Compress 256x256 images for Windows Vista" deaktiviert. Nach dem Erstellen des Icons (allerdings nicht als PNG) kann ich es in den Projektoptionen als Icon wählen und auf dem Desktop und in Ordnern etc. wird es (zumindest unter Vista - wie es unter Win 7 ist, weiß ich leider nicht) richtig dargestellt

Benutze auch IcoFX mit der genannten Option - und ja, Windows 7 zeigt es auch richtig an :-)

Gruß
Patrick


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:23 Uhr.
Seite 1 von 4  1 23     Letzte »    

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