Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi PNG-Bilder in Exe einkompilieren? (https://www.delphipraxis.net/81388-png-bilder-exe-einkompilieren.html)

Light 26. Nov 2006 12:03


PNG-Bilder in Exe einkompilieren?
 
Hallo Ihr Alle,

weiß jemand wie man am Besten PNG Bilder in eine Exe Integrieren könnte?
Das Layout meines Programms baut auf PNG auf -
und da man diese leider nicht zur Designzeit in die Images rein laden kann
muss ich das zur Laufzeit machen.
Momentan hab ich einfach alle Grafiken im Programmverzeichnis liegen.
Nur das ist halt sehr unpraktisch wenn man das Programm weitergeben will,
weil dann die Gefahr besteht das Grafiken verloren gehen....
und dann könnte man das Programm nicht mehr bedienen :duck:

In der Suche habe ich nur Möglichkeiten für BMP gefunden...
Ich hoffe ihr könnt mir helfen!
oder mir sagen nach was ich suchen soll!
:dp:


Leuchtende Grüße

Stefan

alias Light

SirThornberry 26. Nov 2006 12:04

Re: PNG-Bilder in Exe einkompilieren?
 
Du kannst sie ganz einfach wie jede andere Ressource einbinden. Als typ kannst du BINRES etc. nutzen.

Light 26. Nov 2006 12:08

Re: PNG-Bilder in Exe einkompilieren?
 
Hm
wie kann ich das am Geschicktesten machen?
ich benutze Turbo Delphi Explorer
brauche ich da den alten Bildeditor?
Ich hab noch nicht mit Ressource bewusst gearbeitet...
Nach was muss ich da suchen?

Leuchtende Grüße

Stefan

Balu der Bär 26. Nov 2006 12:10

Re: PNG-Bilder in Exe einkompilieren?
 
Genanntes Stichwort in die DP-Suche eingeben. :zwinker:

http://www.delphipraxis.net/internal...ct.php?t=71460

Light 26. Nov 2006 19:50

Re: PNG-Bilder in Exe einkompilieren?
 
Hallo Ihr lieben,

ich hab jetzt gesucht und gesucht und auch ganz viel gefunden,
nur irgendwie geht das bei mir nicht richtig!
Könnte bitte jemand mir das noch mal mit Beispiel schritt für schritt erklären?
Bitte!

Also noch mal um meine Voraussetzung (die ich habe ) zu erläutern:
Turbo Delphi Explorer
PNG Grafiken
diese Sollen nachher im Programm Geladen werden
sie sind für das Design/ Layout zuständig.

Bitte helft mir!

Leuchtende Grüße

Stefan

inherited 26. Nov 2006 19:52

Re: PNG-Bilder in Exe einkompilieren?
 
Was geht denn bei dir nicht?

Light 26. Nov 2006 22:04

Re: PNG-Bilder in Exe einkompilieren?
 
Mein erstes Problem ist das ich nicht genau weiß ob jetzt die Res Datei in mein Projekt eingebunden ist oder nicht.
Die Layout1.rc Datei ist Eingefügt.
Er erzeugt auch die .res Datei.
Nur wenn ich dann das Versuche
Delphi-Quellcode:
LayoutStream := TResourceStream.Create(HInstance,'Layout1','BINRES');
gibt er mir immer
Diese Fehlermeldung:
Delphi-Quellcode:
---------------------------------------
Ressource Layout1 wurde nicht gefunden.

                [ OK ]
---------------------------------------
wenn ich dann aber mit
Delphi-Quellcode:
{$R Layout1.res}
Versuche die .res explizit einzubinden dann bekomme ich diesen Fehler und er kompiliert nicht:
Delphi-Quellcode:
[Pascal Fehler] E2161 Duplicate resource: Type RC_DATA, ID EXITB; File F:\Delphi\Delphi_Turbo_2006\explorer_ersatz\V01_S_explor\Layout1.res resource kept; file F:\Delphi\Delphi_Turbo_2006\explorer_ersatz\V01_S_explor\Layout1.res resource discarded.
Wenn es eine Andere Möglichkeit gibt die Bilder zu laden bin ich gerne bereit diese zu testen :lol:

Ich hoffe ihr könnt mir helfen.

Leuchtende Grüße

Stefan

turboPASCAL 26. Nov 2006 23:45

Re: PNG-Bilder in Exe einkompilieren?
 
1. Zeig doch mal bitte deine .rc - Datei.

2. Was falsch läuft steht doch da: "[Pascal Fehler] E2161 Duplicate resource: Type RC_DATA,"

Irgend wie hast Du es geschaft die Reource doppelt einzubinden.

3. Die Unit PngImage erwarted die Resource (also die PNG-Datei) in der der Section RC_DATA

Beispiel der .rc-Datei:
Delphi-Quellcode:
;ResName: Res-Typ:  Filename:
MyPng     RCDATA    "c:\...\Test.png"
In Projekt:
Delphi-Quellcode:
program Project1;

uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}
{$R 'PNGRes.res' 'PNGRes.rc'}

//...
Geht auch über Shift + F11 in der IDE

Delphi-Quellcode:
//...

implementation

{$R *.dfm}

//...

procedure SoUndSo...
var p:tpngobject;
begin
  p := tpngobject.Create;

  p.LoadFromResourceName(HInstance, 'MyPng');

  Image1.Assign(p);

  freeandnil(p);
end;

Light 27. Nov 2006 22:34

Re: PNG-Bilder in Exe einkompilieren?
 
Hallo Ihr,

@turboPASCAL: Ein ganz großes DANKE Schön! :hello:
:dancer:

Mein Problem wieso ich es geschafft habe die Res zweimal einzubinden war -
ich habe sie in der Unit versucht ein zweites mal einzubinden,
da ich nicht wusste das sie im Projekt als solche eingebunden wird :roll:


Es Funktioniert:
Ich habe Es jetzt so gelöst
Delphi-Quellcode:
...
procedure TFHaupt.GetSetPic(Name:String;XXImage: TImage);
var p:tpngobject;
begin
  p := tpngobject.Create;
  p.LoadFromResourceName(HInstance,PChar(Name));
  XXImage.Picture.Assign(p);
  freeandnil(p);
end;
...
So kann ich an Beliebiger Stelle in Meinem Programm ein Bild Laden! :spin2:

So kann man das Ganze dann einfach Aufrufen:
Delphi-Quellcode:
GetSetPic('MainBG',IBackground);
Meine .RC Datei sieht momentan noch So aus - wird sich wahrscheinlich noch ein bisschen füllen :wink:
Delphi-Quellcode:
MainBG RCDATA "f:\Delphi\Delphi_Turbo_2006\explorer_ersatz\V01_S_explor\Layout\1024x768.png"
PWBG RCDATA "f:\Delphi\Delphi_Turbo_2006\explorer_ersatz\V01_S_explor\Layout\PWD400.png"
RahmenB RCDATA "f:\Delphi\Delphi_Turbo_2006\explorer_ersatz\V01_S_explor\Layout\Rahmen_Button.png"
ExitB RCDATA "f:\Delphi\Delphi_Turbo_2006\explorer_ersatz\V01_S_explor\Layout\Exit.png"
OptionsB RCDATA "f:\Delphi\Delphi_Turbo_2006\explorer_ersatz\V01_S_explor\Layout\Options.png"
InfoB RCDATA "f:\Delphi\Delphi_Turbo_2006\explorer_ersatz\V01_S_explor\Layout\Info.png"
Fragt mich bitte nicht was daran jetzt so schwer war :duck:
Ich schätze es waren zu viele Sachen auf einmal die Falsch waren...

DANKE FÜR DIE HILFE EUCH ALLEN!

Leuchtende Grüße

Stefan

alias Light

Helmi 29. Dez 2006 18:00

Re: PNG-Bilder in Exe einkompilieren?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

ich muss dieses Thema nochmal aufwärmen:

ich hab versucht eine Bild-Datei als Resource ins programm mit einzubinden

aber ich erhalte nur die Meldung "Resource TestBar" nicht gefunden

Könnte sich jemand mal mein Test-Programm anschauen, was an dem falsch ist?


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:53 Uhr.
Seite 1 von 2  1 2      

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