AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Icon aus Resource laden?

Ein Thema von Pseudemys Nelsoni · begonnen am 8. Aug 2006 · letzter Beitrag vom 9. Aug 2006
Antwort Antwort
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#1

Icon aus Resource laden?

  Alt 8. Aug 2006, 20:25
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?
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.197 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Icon aus Resource laden?

  Alt 8. Aug 2006, 20:33
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.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von ChrisE
ChrisE

Registriert seit: 15. Feb 2006
Ort: Hechingen
504 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

Re: Icon aus Resource laden?

  Alt 8. Aug 2006, 21:43
Hallo,

generell helfen hier die Methoden
Delphi-Quellcode:
Icon.LoadFromResourceName('DerName');
//bzw.
Icon.LoadFromResourceID(Nummer);
wenn es nur ein Icon für alle Fenster gibt:
- 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
{$R *.res} in der DPR sollt dafür sorgen, dass die Ressourcendatei verfügbar ist und verwendet wird
Christian E.
Es gibt 10 Arten von Menschen, die die Binär lesen können und die die es nicht können

Delphi programming rules
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#4

Re: Icon aus Resource laden?

  Alt 9. Aug 2006, 13:03
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>
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Benutzerbild von ChrisE
ChrisE

Registriert seit: 15. Feb 2006
Ort: Hechingen
504 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

Re: Icon aus Resource laden?

  Alt 9. Aug 2006, 13:57
Ups...

Zitat von Pseudemys Nelsoni:
Moin,
man kann in MSVC# ja ....
da sollte man den Post doch etwas aufmerksamer lesen.
Sorry
Christian E.
Es gibt 10 Arten von Menschen, die die Binär lesen können und die die es nicht können

Delphi programming rules
  Mit Zitat antworten Zitat
Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#6

Re: Icon aus Resource laden?

  Alt 9. Aug 2006, 14:25
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 von ChrisE:
Icon.LoadFromResourceName('DerName');
kann ersetzt werden durch:
Code:
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
//  so hat es der Compiler in InitializeComponent() eingetragen
Zitat von ChrisE:
wenn es nur ein Icon für alle Fenster gibt:
MyForm.Icon.LoadFromResourceName
Dazu habe ich bisher leider kein Pendant gefunden: Die Application-Klasse von NET ist etwas anderes als TApplication von Delphi; insbesondere wird das Application.Icon nicht bereitgestellt.

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:
WinForm2.Icon = WinForm1.Icon;
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.

Vielleicht helfen Dir diese Informationen weiter.
Jürgen
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:18 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