![]() |
Ressource-Datei erst zur Lautzeit der Programms einbinden
Hey!
Hab schon die Suche bemüht, aber bin nciht wirklich schlau draus geworden: Und zwar habe ich ein paar Bilder in drei verschiedene Ressource-Dateien gepackt und will diese aber nicht in die EXE-Datei einbinden, da diese dann auf stattliche 3,12 MB anwächst. Mir wäre es um einiges lieber, wenn ich die Ressourcen zur Laufzeit des Programm öffnen könnte!? Ich hab nur keine Ahnung wie ich des machen soll! mfg shark |
Re: Ressource-Datei erst zur Lautzeit der Programms einbinde
Tja...
Wenns keiner weiß muss ich es halt selber beantworten (hab auch hilfe bekommen - muss ich ja gestehen) Und zwar geht im Prinzip wie mir RES- oder RC-Dateien: Man erstellt sich eine RC-Datei mit den gewünschten Daten. Danach erstellt man kein neues Projekt sondern ein DLL-Datei. Dabei kann man ruhig die USES-Klauseln rauslöschen, wenn man keine Funktionen darin speichern will, denn dann wird die DLL noch ein bisschen kleiner. Wenn man also diese neue DLL in Delphi erstellt hat geht man im MainMenu von Delphi auf "Projekt" und dann auf "Dem Projekt hinzufügen". Dort wählt man dann die gewünschte einzubindende RC-Datei aus. Danach compiliert man die DLL und kann sie verwenden. Um die Inhalte der DLL-Datei auszulesen benutzt man den folgenden Code:
Code:
Wenn ihr noch Fragen zu diesem Code habt....
// "mydll" ist der die compilierte DLL
// Vorher muss man noch n Image auf die Form setzen // der Name "meinbild" ist der Titel den man in der RC-Datei verwendet procedure TForm1.Button1Click(Sender: TObject); var Lib: Integer; begin Lib := LoadLibraryEx('mydll.dll', 0, LOAD_LIBRARY_AS_DATAFILE); if Lib <> 0 then try Image1.Picture.Bitmap.LoadFromResourceName(Lib, 'meinbild'); finally FreeLibrary(Lib); end else raise Exception.Create('Fehler in der Ressourcen-DLL...'); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:06 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