Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi LoadIcon --> hIcon bekommen mit RCData Resource (https://www.delphipraxis.net/99330-loadicon-hicon-bekommen-mit-rcdata-resource.html)

Zacherl 10. Sep 2007 20:27


LoadIcon --> hIcon bekommen mit RCData Resource
 
Hey,

ich möchte in einem nonVCL Programm von mir ein TrayIcon anzeigen lassen. Das funktioniert auch wunderbar. Das Icon lade ich momentan über LoadIcon. Dazu muss sich dieses allerdings als ICON Resource in der EXE befinden.
Da meine EXE kein Icon hat verwendet Windows zu meinem Frust mein kleines 16x16px Trayicon, welches als ICON Resource eingebunden ist als MAINICON :?

Kann ich das hIcon auch von einem Pointer oder eine RCDATA Resource bekommen? Ich meine Luckie hatte mal ein Icon aus einem Array geladen und direkt das Icon Handle ermittelt ..

Gruß Zacherl

Luckie 10. Sep 2007 20:30

Re: LoadIcon --> hIcon bekommen mit RCData Resource
 
Warum machst du denn nicht das gewünschte Icon in die Ressource?

Zacherl 10. Sep 2007 20:39

Re: LoadIcon --> hIcon bekommen mit RCData Resource
 
Das hIcon bleibt 0, wenn die Icon Resource beispielsweise als RCDATA eingebunden wird.

turboPASCAL 10. Sep 2007 21:24

Re: LoadIcon --> hIcon bekommen mit RCData Resource
 
Hä ? ;)

Bastel dir eine *.Rc Datei und baue dir dein Icon ein ala:

Code:
1 ICON "C:\0815\AppIcon.ico"
und screibe oder "adde" die Resource über Umschalt+F11 die *.RC-Datei in dein Projekt zB.:

Delphi-Quellcode:
program _0815;

{$R 'C:\0815\resources\0815.res' 'C:\0815\resources\0815.rc'}

uses
  Windows,...
und Verwende MSDN-Library durchsuchenLoadImage (ist besser als LoadIcon) zB. so:
Delphi-Quellcode:
 _hIcon := LoadImage(hInstance, MAKEINTRESOURCE(1), IMAGE_ICON, 0, 0, 0);

Zacherl 10. Sep 2007 21:30

Re: LoadIcon --> hIcon bekommen mit RCData Resource
 
Wie gesagt .. wenn ich das Icon als ICON Resource einbinde nimmt Windows dieses als Icon für die EXE. Das will ich nicht. Das Icon soll nur für mein kleines TrayIcon verwendet werden. Daher möchte ich das Icon aus einer RCDATA Resource laden. Die nimmt Windows nicht als Dateiicon.

turboPASCAL 11. Sep 2007 08:16

Re: LoadIcon --> hIcon bekommen mit RCData Resource
 
Hi Zacherl,

dann baue doch ein zweites Icon in der Resource ein. Oder soll das Icon generell nicht für Windows
verwendbar sein ?

Zacherl 11. Sep 2007 08:18

Re: LoadIcon --> hIcon bekommen mit RCData Resource
 
Jap, meine Anwendung soll das Standardicon verwenden. Windows interpretiert meine Icon Resource für das TrayIcon leider auch als Dateiicon, wenn ich den Resourcentyp ICON verwende. Nehme ich RCDATA funktioniert es mit dem Dateiicon wie gewünscht, allerdings bleibt dann das Icon Handle 0 :?

turboPASCAL 11. Sep 2007 08:54

Re: LoadIcon --> hIcon bekommen mit RCData Resource
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Zacherl
...soll das Standardicon verwenden.

also das IDI_Applications-Icon ? Das kannst du doch auch als Resource einbinden..

:gruebel:

Zacherl 11. Sep 2007 08:58

Re: LoadIcon --> hIcon bekommen mit RCData Resource
 
:mrgreen: Wir reden aneinander vorbei. Das was du als TrayIcon drinnen hast möchte ich haben. Das was bei dir Mainicon ist soll einfach nicht in die EXE rein. Es soll von Windows das Standardsymbol verwendet werden. (Unter Vista sieht dieses anders aus als unter XP, daher kann ich nicht einfach das Stadnardicon als Mainicon Resource einbinden)

Lass ich das Mainicon aber ganz weg, verwendet Windows die TrayIcon Resource als Dateiicon. Und das möchte ich vermeiden, indem ich das Icon nicht als RT_ICON sondern als RT_RCDATA einbinde. Dann schlägt aber wiederrum LoadIcon fehl ..

turboPASCAL 11. Sep 2007 09:08

Re: LoadIcon --> hIcon bekommen mit RCData Resource
 
Zitat:

Zitat von Zacherl
Lass ich das Mainicon aber ganz weg, verwendet Windows die TrayIcon Resource als Dateiicon. Und das möchte ich vermeiden, indem ich das Icon nicht als RT_ICON sondern als RT_RCDATA einbinde. Dann schlägt aber wiederrum LoadIcon fehl ..

Das ist klar, dann musst du das Trayicon über Umwege laden... kleinen Moment...


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:22 Uhr.
Seite 1 von 2  1 2      

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