Autor Beitrag
xasx
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 34

WinXP Pro, Win 2k3 ServEnt
D2k5 PE, VS 2005
BeitragVerfasst: Do 14.04.05 21:38 
Hallo Leute!

Wie binde ich unter Delphi 2005 .NET denn Dateien als Resourcen ein?
Unter Visual Studio .NET füge ich hierzu eine z.B. ICO-Datei (es geht aber auch jede beliebige andere) zum Projekt hinzu und wähle anschließend in den Eigenschaften der Datei unter "Buildaktion" "Eingebettete Resource". Ich kann die Resource danach wie folgt abrufen:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
function PluginClass.get_PluginIcon: Icon;
var
  ass: Assembly;
begin
  ass := Self.GetType.Assembly;
  Result := Icon.Create(ass.GetManifestResourceStream('open_delphi.test.ico'));
end;


Wobei hier open_delphi der Projekt- bzw. Assemblyname und test.ico der Name der Icondatei ist.

Die obige Funktion ist Teil eines Plugin-Interface, also einer Klassenbibliothek, wodurch ich auch keine ImageList o.Ä. benutzen kann. ImageList fällt denke ich eh flach, da diese nur Images, keine Icons zurückgibt.

Wäre schön, wenn jemand ne Lösung wüsste.

Grüße,

Andy

Moderiert von user profile iconChristian S.: Code- durch Delphi-Tags ersetzt.
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 14.04.05 22:21 
Reden wir von der gleichen Imageliste? Ich hab´s in CSharp versucht: Da spielt das keine Rolle, ob es sich bei dem Bild um eine Bitmap, eine GIF- oder eine PNG-Grafik handelt. Warum sollte sie dann Probleme mit Icons haben? :gruebel:
xasx Threadstarter
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 34

WinXP Pro, Win 2k3 ServEnt
D2k5 PE, VS 2005
BeitragVerfasst: Fr 15.04.05 12:58 
Mein Problem ist primär, die Resourcen in das Manifest einzubinden...

Zur ImageList: über die Eigenschaft Images, die einen Indexer besitzt oder ein Array ist, kriegst du nur Image-Objeke, keine Icon-Objekte heraus, das meinte ich. Außerdem will ich nicht eine Steuerelementbibliothek anlegen, wenn ich eigentlich kein Steuerelement benötige, nur um auf eine ImageList bzw. die damit angelegte ImageStream-Resource zuzugreifen.

Eine andere Möglichkeit, die ich aber weitestgehend vermeiden will, wäre es, die Icon-Dateien über ein Win32-Resourcenskript in die DLL einzubinden und dann über PInvoke die Resource dann auszulesen. Wie gesagt - sehr unschön und Performance-lastig.

Ich wäre echt dankbar für ne Antwort, wie man genau das tut, was ich tun will :wink:
xasx Threadstarter
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 34

WinXP Pro, Win 2k3 ServEnt
D2k5 PE, VS 2005
BeitragVerfasst: Mo 18.04.05 10:10