Entwickler-Ecke

Dateizugriff - Resourcendatei in DLL und dann im Prog darstellen!?!?


Maggi - Mi 17.09.03 10:21
Titel: Resourcendatei in DLL und dann im Prog darstellen!?!?
Hallo Leute,

ich habe da mal ein Problem (warscheinlich seh ich den Wald vor lauter Bäumen nicht):


Also ich habe mir eine ZZZ.res Datei mit einigen Bilder gebaut (soweit gut), diese habe ich dann in eine DLL gelinkt damit ich die nicht in der EXE lieegen habe.

...aber wie zum Henker bekommen ich diese Bitmaps nun auf meine Buttons oder in meine Imagelisten, irgendwie veräppelt mich Delphi da nur. Die in der OH angegebenen Wege bekomme ich nicht zum laufen

Hilfe wäre riesig!!!

gruß Maggi :oops:


Delete - Mi 17.09.03 10:28

LoadImage. Als Instanz gibst du das Handle der DLL an, die du vorher mit LoadLibrary dynamisch geladen hast.


Maggi - Mi 17.09.03 10:39
Titel: Hmmm...
Hallo Luckie,

irgendwie Blicke ich das nicht ganz:

Ich hole mir die DLL mir

Delphi-Quelltext
1:
hTest := LoadLibraryEx(PChar('uDLLTEST.dll'), 0, LOAD_LIBRARY_AS_DATAFILE);                    

und dann möchte ich zum Beispiel ein Bild davon auf einem BitButton wiedergeben, das funzt mit loadlibary aber nicht, oder ich mache da was falsch... hier mein Versuch:

Delphi-Quelltext
1:
btnLoad.Glyph := LoadBitmap(hTest,Pchar('KKK.bmp'));                    

Irgenwas mache ich doch falsch oder???

Gruß

Maggi :oops:

Moderiert von user profile iconTino: Delphi-Tags hinzugefügt.


Delete - Mi 17.09.03 11:06

Gibt LoadLibrary ein gültiges Handle zurück? Gib mal den kompletten Pfad an. Stimmt der Name der Ressource? Was sagt GetLastError?


Maggi - Mi 17.09.03 11:18

Nochmal Tag, ;-)

also hier mal die komplete procedure:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
procedure TForm1.FormCreate(Sender: TObject);
var hTest : THandle;
begin

  hTest := LoadLibraryEx(PChar('uDLLTEST.dll'), 0, LOAD_LIBRARY_AS_DATAFILE);
//  LoadBitmap(hTest,Pchar('KKK.bmp'));
  btnLoad.Glyph := LoadBitmap(hTest,Pchar('KKK.bmp'));

end;

Das handle scheint korrekt zu sein, mit dem kompletten Pfad bekomme ich auch kein anderes Ergebnis und GETLASTERROR erzählt von einem anderen Fehler der hier nichts mit zu tu hat....

Ich bekomme aber jetzt eine Fehlermeldung die Inkompatible Typen moniert, TBITMAP und HBITMAP....

Gruß

Maggi :oops:

Moderiert von user profile iconTino: Code- durch Delphi-Tags ersetzt.


Delete - Mi 17.09.03 11:25

Jupp LoadBitmap liefert dir ein Handle auf ein Bitmap vom Typ HBITMAP.


Maggi - Mi 17.09.03 11:28

Alles klar,

jetzt habe ich das Problem gelöst... es lag an den unterschiedlichen Typen!!

Besten Dank für deine Hilfe :D

Gruß

Maggi


Delete - Mi 17.09.03 11:32

Poste bitte die komplette Lösung. Danke.


Maggi - Mi 17.09.03 12:05
Titel: Ujujuj
...das war zu früh gefreut, es klappt doch noch nicht so wirklich. Ich habe weiterhin Probleme mit den verschiedenen Typen... hmmm, ich werde erst nochmal eine Runde über meinem Code brüten, vielleicht kommt ja die Erleuchtung. Eine Hilfestellung von Dir (euch anderen natürlich auch) wäre trotzdem noch toll!!

Gruß

Maggi :oops: