Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi ImageList in DLL (https://www.delphipraxis.net/31607-imagelist-dll.html)

Gruber_Hans_12345 11. Okt 2004 17:57


ImageList in DLL
 
Hallo

Würd mich freuen, wenn ihr mir ein paar Meinungen zum folgenden geben könnt (ob machbar, oder bessere Lösungen)

Im Moment habe ich in meiner EXE Datei eine TDataModule Klasse mit ca. 10 verchiedenen ImageListen.
Da ich diese Imageliste gerne schnell und oft ändern möchte / muß habe ich die Idee diese in eine DLL auszulagern.

Muß ich was dabei beachten ?

Ich würde folgendes probieren :
*) Die ImageList's exportieren (pro Imagelist dann ein Bitmap File)
*) Diese dann als Ressource in die DLL laden
*) Beim start der exe dann die alten noch existierenden ImageList mit diesen Bitmaps überladen.

Warum ?

Ich würde das ganze dann so machen, das ich mit einem 2-ten Programm dann einfach ein neues Bild in eine ImageList einfügen kann
*) laden des alten Bitmap files
*) anhängen (links) des neuen Bitmaps
*) speichern
*) Per Kommandozeile den DCC32 aufrufen und die DLL erzeugen
(weiß jemand wie ich dann den DCC32 aufrufen muß (auswendig))
*) Und dem Client die aktuelle DLL schicken.

Verbesserungsvorschlage / offensichtliche Probleme / dumme Gedanken ?

Gruss
Hans

Stevie 11. Okt 2004 18:03

Re: ImageList in DLL
 
Mach lieber ein Package (bpl), was von deiner Anwendung geladen wird, wo dein DataModul drin ist.
Das spart die ganze dll-Laderei...

CenBells 11. Okt 2004 18:04

Re: ImageList in DLL
 
Hi,

ich habe etwas ähnliches gedacht. Und zwar habe ich eine Dll in die ich eine Resource einkompiliert habe. Die Dll stellt eine methode zum Laden des Bildes zur verfügung.
Bei Bedarf lade ich das bild und gut ist.
So brauche ich nur die DLL zu erneuern und dann ist das neue bild verfügbar.

Gruß
ken

Gruber_Hans_12345 11. Okt 2004 19:45

Re: ImageList in DLL
 
Zitat:

Zitat von Stevie
Mach lieber ein Package (bpl), was von deiner Anwendung geladen wird, wo dein DataModul drin ist.
Das spart die ganze dll-Laderei...

Hat bpl sonst noch vorteile / Nachteile ?
Hab noch nie mit bpl's gearbeitet ...

Kann man bpl automatisch (per Batch erzeugen) ?

jbg 11. Okt 2004 19:59

Re: ImageList in DLL
 
BPLs sind DLL Dateien, bei denen der Compiler dir gewaltig unter die Arme greift.
Hier findest du mehr Informationen zu BPL vs. DLL (englisch)

Stevie 12. Okt 2004 07:29

Re: ImageList in DLL
 
Zitat:

Zitat von Gruber_Hans_12345
Zitat:

Zitat von Stevie
Mach lieber ein Package (bpl), was von deiner Anwendung geladen wird, wo dein DataModul drin ist.
Das spart die ganze dll-Laderei...

Hat bpl sonst noch vorteile / Nachteile ?
Hab noch nie mit bpl's gearbeitet ...

Kann man bpl automatisch (per Batch erzeugen) ?

Klar, wenn du ein Package kompilierst, wird eine bpl erzeugt.
Ich wäre immer vorsichtig, irgendwelche VCL-Elemente in einer Dll zu erzeugen, wenn du sie sowieso nur in Delphi benötigst.
Sowas macht man besser in einer Bpl.

Gruber_Hans_12345 12. Okt 2004 08:52

Re: ImageList in DLL
 
Hmmm, hab mir die Infos von der Seite gezogen, und bin der Meinung, das DLL für meinen Fall besser als BPL ist :

*) Für BPL MUß ich die selbe Delpi Version verwenden, bei einer DLL kann ich die DLL in einer alten Version Compilieren. Habe vor, das der Compilierungsvorgang für die DLL auf einem anderem Rechner läuft, und da werde ich dann auch ein eigenes Delphi dafür brauchen, wobei aber eine alte Delphi 4 Professional reichen müßte.

*) Ich will OHNE die Appliaktion zu ändern, die externe DLL oder BPL austauschen (natürlich einmal das Programm beenden), bei BPL muß ich dann ja auch die Applikation neu kompilieren

*) Ich will NUR die EINE als BPL/DLL realisieren, die restlichen anderen (verschiedenste Komponenten, Delphi selbst) direkt in meine Applikation reinbinden.

Oder habe ich die Punkte falsch interpretiert ?

Stevie 12. Okt 2004 08:57

Re: ImageList in DLL
 
Zitat:

Zitat von Gruber_Hans_12345
Hmmm, hab mir die Infos von der Seite gezogen, und bin der Meinung, das DLL für meinen Fall besser als BPL ist :

*) Für BPL MUß ich die selbe Delpi Version verwenden, bei einer DLL kann ich die DLL in einer alten Version Compilieren. Habe vor, das der Compilierungsvorgang für die DLL auf einem anderem Rechner läuft, und da werde ich dann auch ein eigenes Delphi dafür brauchen, wobei aber eine alte Delphi 4 Professional reichen müßte.

*) Ich will OHNE die Appliaktion zu ändern, die externe DLL oder BPL austauschen (natürlich einmal das Programm beenden), bei BPL muß ich dann ja auch die Applikation neu kompilieren

*) Ich will NUR die EINE als BPL/DLL realisieren, die restlichen anderen (verschiedenste Komponenten, Delphi selbst) direkt in meine Applikation reinbinden.

Oder habe ich die Punkte falsch interpretiert ?

1) Stimmt allerdings...
2) Muss nicht sein, auch bpls können dynamisch geladen werden, allerdings müssen dann alle bpls mitgeliefert werden, die benötigt werden.
3) Dann wäre es besser, nicht die ganze ImageList auszulagern, sondern nur die Resourcen auszutauschen und diese zu aktualisieren. (könnte imho sogar im laufenden Betrieb geschehen)

Gruber_Hans_12345 12. Okt 2004 09:19

Re: ImageList in DLL
 
Zitat:

Zitat von Stevie
1) Stimmt allerdings...
2) Muss nicht sein, auch bpls können dynamisch geladen werden, allerdings müssen dann alle bpls mitgeliefert werden, die benötigt werden.
3) Dann wäre es besser, nicht die ganze ImageList auszulagern, sondern nur die Resourcen auszutauschen und diese zu aktualisieren. (könnte imho sogar im laufenden Betrieb geschehen)

zu 3.) genau so hab ichs mir ja überlegt,
Zitat:

*) Die ImageList's exportieren (pro Imagelist dann ein Bitmap File)
*) Diese dann als Ressource in die DLL laden
*) Beim start der exe dann die alten noch existierenden ImageList mit diesen Bitmaps überladen.

Stevie 12. Okt 2004 09:35

Re: ImageList in DLL
 
Zitat:

Zitat von Gruber_Hans_12345
zu 3.) genau so hab ichs mir ja überlegt,
Zitat:

*) Die ImageList's exportieren (pro Imagelist dann ein Bitmap File)
*) Diese dann als Ressource in die DLL laden
*) Beim start der exe dann die alten noch existierenden ImageList mit diesen Bitmaps überladen.

Hab ich wohl falsch verstanden, hört sich für mich so an, also ob du die komplette ImageList (Komponente!) auslagern wolltest.
Sollte eigentlich funktionieren, also sind in der Dll nur die Ressourcen, das klingt plausibel.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:50 Uhr.
Seite 1 von 2  1 2      

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 by Thomas Breitkreuz