Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Programmicon abfragen (https://www.delphipraxis.net/198532-programmicon-abfragen.html)

DieDolly 11. Nov 2018 15:32

Programmicon abfragen
 
In den Projektoptionen kann man ein Icon festlegen. Bei mir ist es ein 256 px großes ICO.
Wie bekomme ich dieses Icon in ein Image? Application.Icon gibt mir leider nur ein 16x16px kleines Bildchen zurück.

KodeZwerg 11. Nov 2018 15:58

AW: Programmicon abfragen
 
Wenn es als Resource in dieser Dimension abgelegt ist, könntest Du es als Resource reinladen.
Alternativ, schnell mal das hier probieren:
Delphi-Quellcode:
Image1.Picture.Icon.Handle := ExtractIcon( hInstance, PWideChar( ParamStr( 0 ) ), Cardinal( 0 ) );
Ps: Ich glaube dann sollte im Image1 bei diesem Aufruf bereits ein Icon existiert haben... weiß grad nicht 100%

DieDolly 11. Nov 2018 16:04

AW: Programmicon abfragen
 
Als Resource möchte ich es nicht einbinden denn dann hätte ich doppelte Arbeit wenn ich das Icon wechsle.

KodeZwerg 11. Nov 2018 16:13

AW: Programmicon abfragen
 
Betrachte bitte Deine .exe mit einem Resource Editor Deiner Wahl.
Programmicons sind dort hinterlegt, ob Du möchtest wird nicht gefragt, so ist es eben.
Mit der ExtractIcon() Methode kannst Du mit dem Cardinal() steuern welchen IconIndex Du abfragen möchtest.

Hast Du es überhaupt probiert?

Uwe Raabe 11. Nov 2018 16:18

AW: Programmicon abfragen
 
Zitat:

Zitat von DieDolly (Beitrag 1417840)
Als Resource möchte ich es nicht einbinden denn dann hätte ich doppelte Arbeit wenn ich das Icon wechsle.

Wenn es in den Projekt-Optionen als Icon angegeben ist, dann wird es automatisch als Resource "MAINICON" eingebunden. Mit folgendem Code kannst du das in der passenden Größe abrufen:
Delphi-Quellcode:
  Image1.Picture.Icon.Handle := LoadImage(HInstance, 'MAINICON', IMAGE_ICON, 256, 256, 0);

DieDolly 11. Nov 2018 16:40

AW: Programmicon abfragen
 
Zitat:

ob Du möchtest wird nicht gefragt, so ist es eben.
Ich dachte du meinst eine extra angefertigte Resourcedatei. Dass in der Exe selber noch eine ist, habe ich total vergessen.

KodeZwerg 11. Nov 2018 16:44

AW: Programmicon abfragen
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1417842)
Delphi-Quellcode:
  Image1.Picture.Icon.Handle := LoadImage(HInstance, 'MAINICON', IMAGE_ICON, 256, 256, 0);

Sehr gut, gegenüber dem hier, bei LoadImage() nimmt der tatsächlich bevorzugt die Größe die man eintippt.
Delphi-Quellcode:
Application.Icon.Handle := LoadIcon( hInstance, MAKEINTRESOURCE( 'MAINICON' ) );


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