Entwickler-Ecke

Dateizugriff - eine resource für mehrere projekte


Takeshi - Di 13.05.03 21:47
Titel: eine resource für mehrere projekte
moin

ich möchte fragen, wie ich eine resource so einbinden kann, dass sie quasi nicht mit in die exe compiliert wird.
ich möchte dass 2 programme auf die selbe reource - in der sich grafiken befinden - zugreifen, damit die exe dateien nicht alle dieselben grafiken enthalten. hmm ich kann grad nicht gut formulieren :(

sollte dies nur mit einer dll möglich sein (wie man die einbidet weiß ich), so möchte ich fragen, wie ich aus einer res-datei eine solche dll mache.

vielen dank schonmal, greez, Takeshi


Blackout - Mi 14.05.03 01:10

hi Takeshi,

ich glaub das ist mit einer Dll am besten und am leichtesten umzusetzen.
Eine ResourcenDll erstellt man so:

Du gehst in Delphi auf "Neu" und wählst dort den "DLL-Experten" aus und
dann bindest du deine Resourcendatei ein.

Müsste dann so aussehen:


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
library Project1;

{ Wichtiger Hinweis zur DLL-Speicherverwaltung: ShareMem muss sich in der
  ersten Unit der unit-Klausel der Bibliothek und des Projekts befinden (Projekt-
  Quelltext anzeigen), falls die DLL Prozeduren oder Funktionen exportiert, die
  Strings als Parameter oder Funktionsergebnisse übergeben. Das gilt für alle
  Strings, die von oder an die DLL übergeben werden -- sogar für diejenigen, die
  sich in Records und Klassen befinden. Sharemem ist die Schnittstellen-Unit zur
  Verwaltungs-DLL für gemeinsame Speicherzugriffe, BORLNDMM.DLL.
  Um die Verwendung von BORLNDMM.DLL zu vermeiden, können Sie String-
  Informationen als PChar- oder ShortString-Parameter übergeben. }
  

uses
  SysUtils,
  Classes;

{$R *.res}
{$R Deine.res}  // <<

begin
end.


Dann Compilierst du das Projekt und fertig ist deine Resourcen-DLL.


Takeshi - Mi 14.05.03 15:38

danke !

gibt es eigentlich mal so eine auflistung, wie man verschiedenste dateitypen in eine res datei packt ?
Sprich so wie für Bitmaps

Quelltext
1:
ButtonOKDown Bitmap button_ok_down.bmp                    

für alle anderen Typen. Und so wie ich die wieder auslese:

Quelltext
1:
Image12.Picture.Bitmap.Handle:=LoadBitmap(hInstance, 'ButtonOKDown');                    


für alle anderen Typen.?

greez Takeshi


Blackout - Mi 14.05.03 16:29

ich glaub nicht aber nenn mir die Dateiendungen helfe dir dann


Takeshi - Do 15.05.03 18:04

naja war eher allgemein die frage
thx ;)