![]() |
[NonVCL] Großes statt kleinem Programmicon in Titelleiste
Liste der Anhänge anzeigen (Anzahl: 1)
Servus!
Ich habe mal wieder ein kleines Problemchen :xmas: Wenn man ein NonVCL-Programm anhand der Dialogvorlage aus dem bekannten Tutorial :) beginnt, sieht das Laden des Anwendungsicons meist so aus:
Delphi-Quellcode:
Das PSDK sagt über WM_SETICON folgendes aus:
WM_INITDIALOG:
begin SendMessage(hDlg, WM_SETICON, ICON_BIG, Integer(LoadIcon(hInstance, MAKEINTRESOURCE(100)))); SendMessage(hDlg, WM_SETICON, ICON_SMALL, Integer(LoadIcon(hInstance, MAKEINTRESOURCE(100)))); // [...] end; Zitat:
Bei VCL-Programmen funktioniert es jedoch so wie gewünscht, also muss der Fehler in der Programmierung und nicht im PSDK liegen. Zur Verdeutlichung des Problems hab ich einen kleinen Screenshot hochgeladen. Im Explorer wird das richtige Icon (16x16) genommen, in der Titelleiste ist stattdessen die gestauchte 32x32-Version. Vielleicht hat jemand eine Idee? |
Re: [NonVCL] Großes statt kleinem Programmicon in Titelleist
Nun kommt es darauf an wie die Icons in der Resourcedatei vorliegen.
Und ich würd's dann so machen:
Delphi-Quellcode:
var
AppIcon: HICON; //... WM_INITDIALOG: begin Icon := LoadIcon(hInstance, MAKEINTRESOURCE(100)); if SendMessage(hDlg, WM_SETICON, ICON_SMALL, Integer(AppIcon)) = 0 then SendMessage(hDlg, WM_SETICON, ICON_BIG, Integer(AppIcon)); DestroyIcon(Icon); // [...] end; |
Re: [NonVCL] Großes statt kleinem Programmicon in Titelleist
Der Befehl
Delphi-Quellcode:
lädt beides mal das 32x32-Icon aus deiner Ressource (die Standardauflösung).
LoadIcon(hInstance, MAKEINTRESOURCE(100))
Benutze für das kleine Icon die Funktion
Delphi-Quellcode:
um das 16x16-Icon zu laden. Alternativ die 16 noch durch GetSystemMetrics(SM_CXSMICON / SM_CYSMICON) ersetzen.
LoadImage(hInstance, MAKEINTRESOURCE(100), IMAGE_ICON, 16, 16, 0)
|
Re: [NonVCL] Großes statt kleinem Programmicon in Titelleist
Liste der Anhänge anzeigen (Anzahl: 1)
@Flocke: Wunderbar, funktioniert einwandfrei, vielen herzlichen Dank!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:17 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz