Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Icons in EXE einbinden (https://www.delphipraxis.net/79080-icons-exe-einbinden.html)

hedie 16. Okt 2006 05:43


Icons in EXE einbinden
 
Hallo

Ich versuche schon seit ein paar tagen Icons in mein projekt einzufügen so das man sie nicht in den exe ordner sein müssen

wie klappt das?


vielen dank

Sunlight7 16. Okt 2006 06:04

Re: Icons in EXE einbinden
 
Mit einem Handelsüblichem Ressourceneditor, oder dem bei Delphi beiligendem Bildeditor die *Projektname*.res Datei bearbeiten und dort einfügen.

Danach mit LoadIcon oder LoadImage im Programm laden.

Edit: Oder eine neue xxx.res machen und per {$R xxx.res} einbinden.

DevilsCamp 16. Okt 2006 09:17

Re: Icons in EXE einbinden
 
Zitat:

Zitat von Sunlight7
Mit einem Handelsüblichem Ressourceneditor, oder dem bei Delphi beiligendem Bildeditor die *Projektname*.res Datei bearbeiten und dort einfügen.

Das würde ich nicht empfehlen. Da diese Datei von Delphi erstellt wurde, kann es sehr gut sein, dass sie auch wieder überschrieben wird. Dann wären die Änderungen für'n A....

Zitat:

Edit: Oder eine neue xxx.res machen und per {$R xxx.res} einbinden.
Das ist die bessere Variante ;)

Sunlight7 16. Okt 2006 09:33

Re: Icons in EXE einbinden
 
Zitat:

Zitat von DevilsCamp
Das würde ich nicht empfehlen. Da diese Datei von Delphi erstellt wurde, kann es sehr gut sein, dass sie auch wieder überschrieben wird. Dann wären die Änderungen für'n A....

Also das ist mir noch nie passiert.
Vorher das Projekt schließen...

hedie 16. Okt 2006 09:57

Re: Icons in EXE einbinden
 
Hmmm

Ok also ich muss ne datei inem ordner erstellen die zb. icons.res lautet und die dan einbinden mit {$R xxx.res}

soweit so gut aber wie kommen den da die icons in die datei? oder muss ich einfach das icon.ico in icon.res umwandeln und dan
jedes einzelne einbinden? wäre soweit kein problem ist nur ne frage

DevilsCamp 16. Okt 2006 09:59

Re: Icons in EXE einbinden
 
Besorg dir den XN Resource Editor. Damit kannst du schnell und problemlos deine Icons in eine .RES-Datei einbinden (eine reciht für alle Icons). Mit den üblichen Verdächtigen (LoadIcon, LoadImage) kannst du sie dann in deinem Programm verwenden.

hedie 16. Okt 2006 10:01

Re: Icons in EXE einbinden
 
ok werd ich machen danke


und die res datei muss dan nicht in dem ordner sei wo ich das programm dan am schluss verwenden möchte oder?

die icons sind dan in der exe?

DevilsCamp 16. Okt 2006 10:03

Re: Icons in EXE einbinden
 
Du darfst nicht vergessen folgendes in deinem Quellcode einzufügen:
Delphi-Quellcode:
{$R PFAD\ZUR\RES-DATEI.RES}
Der Compiler nimmt dann die Datei und bindet sie ins Programm ein (Nachteil: Bei großen Icons, Bildern, usw. wird auch die fertige EXE entsprechend größer).

Sunlight7 16. Okt 2006 10:04

Re: Icons in EXE einbinden
 
Wichtig ist dann, bei LoadIcon bzw. LoadImage den richtigen Namen, den Du in der .res Datei für das jeweilige Icon verwendet hast zu verwenden.

hedie 16. Okt 2006 10:08

Re: Icons in EXE einbinden
 
ok bis jetzt hab ich alles

nun wie ruffe ich das icon auf bzw. lade ich dieses ?

Muss ich als namen einfach den Ordner in der Res datei kennen ? hier zb 2 - 9?

Sunlight7 16. Okt 2006 10:13

Re: Icons in EXE einbinden
 
Beispiel:

Delphi-Quellcode:
Application.Icon.Handle:=LoadIcon(HINSTANCE, 'MeinIconName');
Edit: Ohne Pfad und .res

hedie 16. Okt 2006 10:17

Re: Icons in EXE einbinden
 
Hab was gefunden bzw. gemacht

Delphi-Quellcode:
image1.Picture.Icon.LoadFromResourceName(2,'icons.RES');
obwohl die datei icons.RES im ordner ist gibt er die meldung icons.RES nicht gefunden


weshalb den das?


ich weiss hätte den beitrag editieren sollen

habs heraus gefunden war einen ordner zu tief :D

also er hat die datei gefunden aber wie kann ich nun das entsprechende icon aus der res datei auswählen?

DevilsCamp 16. Okt 2006 10:21

Re: Icons in EXE einbinden
 
Du musst die RES-Datei schon mit {$R RESDATEI} einbinden.

Und als Resource-Name musst du den Namen nehmen, den du dem Icon in der RES-Datei gegeben hast.

hedie 16. Okt 2006 10:23

Re: Icons in EXE einbinden
 
Liste der Anhänge anzeigen (Anzahl: 1)
ich weiss nicht wo der namen steht

seht selbst

DevilsCamp 16. Okt 2006 10:25

Re: Icons in EXE einbinden
 
Der Name steht direkt über "Language Neutral". Wenn du auf "Language Neutral" mit der rechten Maustaste klickst, dann kannst du mit dem Punkt "Properties" auch den Namen ändern...

hedie 16. Okt 2006 10:29

Re: Icons in EXE einbinden
 
Ok hab dem mal den namen HELLO gegeben

und dan das so gemacht
Delphi-Quellcode:
image1.Picture.Icon.LoadFromResourceName(0,'HELLO');
aber es klappt nicht ha den code in eine Button getan

wofür steht eigentlich das 0 bzw. die Zahl vor dem Komma und was ist Cardinal?


vielen dank

DevilsCamp 16. Okt 2006 10:38

Re: Icons in EXE einbinden
 
Die Zahl vor dem Namen ist die Instanz des Moduls, das das Icon enthält. Cardinal ist ein Integertyp, 32bit vorzeichenlos.



Ruf folgendes auf:

Delphi-Quellcode:
image1.Picture.Icon.LoadFromResourceName(HInstance, 'HELLO');
Dann sollte es gehen.

Luckie 16. Okt 2006 10:38

Re: Icons in EXE einbinden
 
Steht alles in der Hilfe:
Zitat:

Instance ist das Handle des Moduls, das die Ressource enthält.
Und es gibt sogar ein Beispiel:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);

var
 BitMap1 : TBitMap;
begin
  BitMap1 := TBitMap.Create;
  try
    BitMap1.LoadFromResourceName(HInstance,'THEBITMAP');
    Canvas.Draw(12,12,BitMap1);
  finally
    BitMap1.Free;
  end;
end;

Sunlight7 16. Okt 2006 10:39

Re: Icons in EXE einbinden
 
So:

Delphi-Quellcode:
image1.Picture.Icon.LoadFromResourceName(HInstance,'HELLO');
Edit: Rote Kästen wären manches mal nicht schlecht: :zwinker:

hedie 16. Okt 2006 10:40

Re: Icons in EXE einbinden
 
es hat geklappt vielen vielen dank an euch alle


:D :D :D :D :D :D :D :D :D :D :D :D


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:53 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