![]() |
Icon aus Resource laden?
Moin,
man kann in MSVC# ja jeder Form ein Icon (das oben links erscheint) hinzufügen - wie in Delphi eben auch... Mein Problem ist folgendes, ich weise meinen 3 Forms das _gleiche_ Icon im "Objekt Inspektor" hinzu. Natürlich kann die IDE ja nicht wissen, dass es sich um das gleiche Icon handelt, also wird es doppelt und dreifach in die exe - was ja nutzlos ist - hinzugefügt. jJemand nde Idee wie ich allen Forms das gleiche Icon geben kann? Aus EINER Resource? |
Re: Icon aus Resource laden?
Eine Möglichkeit: Definier dir eine eigene Form-Basisklasse welche ein Zusatzproperty "IconName" besitzt. Beim Erzeugen des Formulars kann aufgrund dieses Namens das Icon aus der Exe-Resource geladen werden.
|
Re: Icon aus Resource laden?
Hallo,
generell helfen hier die Methoden
Delphi-Quellcode:
wenn es nur ein Icon für alle Fenster gibt:
Icon.LoadFromResourceName('DerName');
//bzw. Icon.LoadFromResourceID(Nummer); - entweder in den Projektoptionen zuweisen oder - Application.Icon.LoadFromResourceName bzw Application.Icon.LoadFromResourceID in der dpr aufrufen z.B. nach Application.Initialize wenn es mehrere Fenster gibt und nur ein paar des selbe Icon haben: z.B. in OnCreate von den Form oder in der dpr nach dem Application.CreateForm(TMyForm, MyForm) MyForm.Icon.LoadFromResourceName bzw MyForm.Icon.LoadFromResourceID Ich hoffe das hilft dir in die richtige Richtung Gruß, Chris P.S.: Nicht vergessen die Ressourcendatei in den Pfad der DPR abzulegen. Die Standardmäßige Compileranweisung
Delphi-Quellcode:
in der DPR sollt dafür sorgen, dass die Ressourcendatei verfügbar ist und verwendet wird
{$R *.res}
|
Re: Icon aus Resource laden?
Moin,
danke für eure Antworten, da ich C# und nicht Delphi verwende, hab ich solche Methoden nicht :( Ich habe es schon so versucht:
Code:
this.Icon = new Icon(typeof(Control), "myicon");
ich weiss nichtmal was "typeof(Control)" bewirkt, da ich es aus der MSDN habe, dennoch funktioniert das ganze nicht und ich bekomme eine Exception die sagt "Die Resource myicon kann in der Klasse System.Windows.Forms.Control nicht gefunden werden" Ist es denn so schwer ein Icon aus einer Resource zu laden?<g> |
Re: Icon aus Resource laden?
Ups...
Zitat:
Sorry |
Re: Icon aus Resource laden?
Delphi oder C#?
Grundsätzlich unterscheiden sich Delphi und C# nicht entscheidend; Tipps für die eine Sprache können auch bei der anderen Sprache sehr gut helfen. Dumm nur, dass die Namen von Methoden zu ändern sind und man dann nicht weiß, nach welchem Stichwort man suchen soll... Konkret: Zitat:
Code:
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
// so hat es der Compiler in InitializeComponent() eingetragen Zitat:
Aber du kannst Folgendes machen: 1. Irgendwo müssen WinForm1, WinForm2 und WinForm3 verknüpft sein, z.B. durch WinForm1.Button1_Click mit dem Aufruf von WinForm2. 2. Dort kannst Du das Icon "übergeben":
Code:
Unter Delphi durfte das so keinesfalls gemacht werden, weil dabei nur ein Handle des Icons übertragen wird; und wenn WinForm2 aufgelöst wird, geht der Verweis auf das Icon von WinForm1 ins Nirwana. Aber unter NET sollte der GarbageCollector dies vernünftig kontrollieren.
WinForm2.Icon = WinForm1.Icon;
Vielleicht helfen Dir diese Informationen weiter. Jürgen |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:00 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