![]() |
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 |
Re: PNG-Bilder in Exe einkompilieren?
Du kannst sie ganz einfach wie jede andere Ressource einbinden. Als typ kannst du BINRES etc. nutzen.
|
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 |
Re: PNG-Bilder in Exe einkompilieren?
Genanntes Stichwort in die DP-Suche eingeben. :zwinker:
![]() |
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 |
Re: PNG-Bilder in Exe einkompilieren?
Was geht denn bei dir nicht?
|
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:
gibt er mir immer
LayoutStream := TResourceStream.Create(HInstance,'Layout1','BINRES');
Diese Fehlermeldung:
Delphi-Quellcode:
wenn ich dann aber mit
---------------------------------------
Ressource Layout1 wurde nicht gefunden. [ OK ] ---------------------------------------
Delphi-Quellcode:
Versuche die .res explizit einzubinden dann bekomme ich diesen Fehler und er kompiliert nicht:
{$R Layout1.res}
Delphi-Quellcode:
Wenn es eine Andere Möglichkeit gibt die Bilder zu laden bin ich gerne bereit diese zu testen :lol:
[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.
Ich hoffe ihr könnt mir helfen. Leuchtende Grüße Stefan |
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:
In Projekt:
;ResName: Res-Typ: Filename:
MyPng RCDATA "c:\...\Test.png"
Delphi-Quellcode:
Geht auch über Shift + F11 in der IDE
program Project1;
uses Forms, Unit1 in 'Unit1.pas' {Form1}; {$R *.res} {$R 'PNGRes.res' 'PNGRes.rc'} //...
Delphi-Quellcode:
//...
implementation {$R *.dfm} //... procedure SoUndSo... var p:tpngobject; begin p := tpngobject.Create; p.LoadFromResourceName(HInstance, 'MyPng'); Image1.Assign(p); freeandnil(p); end; |
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:
So kann ich an Beliebiger Stelle in Meinem Programm ein Bild Laden! :spin2:
...
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 man das Ganze dann einfach Aufrufen:
Delphi-Quellcode:
Meine .RC Datei sieht momentan noch So aus - wird sich wahrscheinlich noch ein bisschen füllen :wink:
GetSetPic('MainBG',IBackground);
Delphi-Quellcode:
Fragt mich bitte nicht was daran jetzt so schwer war :duck:
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" 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 |
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 14:10 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