Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#6

AW: TTaskbar: Neues Icon zuweisen?

  Alt 20. Sep 2024, 03:55
Der Form ist aber kein Icon zugewiesen?
Wenn doch, dann überdeckt sie ja das Application.Icon.

Mal versuchen das Icon in die Form der laden?


Der Code liegt aber nicht in einem Package oder DLL?
Delphi-Referenz durchsuchenHInstance ist das Handle des Moduls (EXE/DLL/BPL), in welchem der Code liegt.
Delphi-Referenz durchsuchenMainInstance ist immer das der EXE, aber auch 0 entspricht der EXE.

Delphi selbst lädt so das Icon ins Application, beim Programmstart (TApplication.Create).
Application.Icon.Handle := LoadIcon(MainInstance, 'MAINICON');

Und falls bei Abfrage in Application und Form kein Icon-Handle vorhanden ist, dann wird dort via LoadIcon(0, IDI_APPLICATION) versucht Eines zu laden, aber das dürfte vom Ergebnis her dem Ersten entsprechen.


Versuch es mal so
Delphi-Quellcode:
NewIcon.LoadFromResourceName(HInstance, AResName);
Application.Icon := NewIcon; // macht aber intern eigentlich auch nur ein Assign
NewIcon.Free;
// oder
Application.Icon.LoadFromResourceName(HInstance, AResName);
// oder
var Stream := TResourceStream.Create(HInstance, AResName, RT_ICON);
Application.Icon.LoadFromStream(Stream);
Stream.Free;
aber ich hätte jetzt keinen Unterschied erwartet, egal ob es über das Handle oder direkt in die VCL-Komponente geladen oder über ein zusätzliches TIcon übergeben wird.
$2B or not $2B

Geändert von himitsu (20. Sep 2024 um 04:04 Uhr)
  Mit Zitat antworten Zitat