Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Fehler beim Laden eines Bilds aus .dll (https://www.delphipraxis.net/67079-fehler-beim-laden-eines-bilds-aus-dll.html)

fwsp 9. Apr 2006 11:41


Fehler beim Laden eines Bilds aus .dll
 
hallo

wie der titel schon sagt, versuche ich bilder aus ner dll zu laden. die dll ist auch soweit fertig. nur kommt der eigentlichen anwendung der fehler:

Code:
---------------------------
Musik-Suite - strela-comp
---------------------------
Bitmap image is not valid.
---------------------------
OK  
---------------------------
der debugger sagt es liegt an diesem code
Delphi-Quellcode:
ImgInst00.Picture.Bitmap.LoadFromStream(R);
nur weiss ich nicht wie ich das anders machen soll, hab schon die foren bemüht, aber dieses problem wurde nicht geschildert. ist meine .dll kaputt?


hier die gesamtheit der prozedur, die die bilder lädt:
Delphi-Quellcode:
  H := LoadLibrary('Pictures.dll');
  if h <> 0 then
  begin
    try
      R := TResourceStream.Create(H, 'Pic00', RT_BITMAP);
      ImgInst00.Picture.Bitmap.LoadFromStream(R);
    finally
      R.Free;
    end;
  end;
  FreeLibrary(h);
ausschnitt aus der .rc der .dll
Code:
Pic00 BITMAP "Oboe.bmp"
Pic01 BITMAP "Trompete.bmp"
danke.

OregonGhost 9. Apr 2006 12:00

Re: Fehler beim Laden eines Bilds aus .dll
 
Hmm, und du bist sicher, dass ImgInst00.Picture.Bitmap gültig ist zu dem Zeitpunkt? Meine mich daran erinnern zu können, dass Bitmap nil ist, solange das Picture nicht tatsächlich eine Bitmap enthält, somit kannst du also auch nicht dessen Methoden aufrufen. Du müsstest stattdessen ImgInst00.Picture.LoadFromFile() verwenden können.
Das alles ohne Gewähr, liegt dunkel in meiner Erinnerung ;)

fwsp 9. Apr 2006 15:23

Re: Fehler beim Laden eines Bilds aus .dll
 
wie soll ich denn LOadFromFile anwenden, soll ich den stream da reinmachen oder die .dll? klappt jedenfalls beides nicht.

//Edit1:
hab grad mal ein bild zur entwicklungszeit in das image geschrieben, damit müsste das NIL ausgeschlossen sein, oder? aber auch das klappt nicht.

DGL-luke 9. Apr 2006 15:42

Re: Fehler beim Laden eines Bilds aus .dll
 
Versuch mal, in ein lokales Bitmap zu laden und dann ins image.

Delphi-Quellcode:
  var b: TBitmap;

  b := TBitmap.create;
  H := LoadLibrary('Pictures.dll');
  if h <> 0 then
  begin
    try
      R := TResourceStream.Create(H, 'Pic00', RT_BITMAP);
      R.Position := 0 //nur zur sicherheit
      b.loadfromstream(R);
     ImgInst00.Picture.Bitmap := b;
    finally
      R.Free;
      B.free;
    end;
  end;
  FreeLibrary(h);

fwsp 9. Apr 2006 15:47

Re: Fehler beim Laden eines Bilds aus .dll
 
hab ich schon probiert, dabei kommt:
Code:
---------------------------
Musik-Suite - strela-comp
---------------------------
Access violation at address ECECECEC. Read of address ECECECEC.
---------------------------
OK  
---------------------------

Hawkeye219 9. Apr 2006 16:12

Re: Fehler beim Laden eines Bilds aus .dll
 
Hallo,

versuche es einmal so:

Delphi-Quellcode:
h := LoadLibrary('Pictures.dll');
if h <> 0 then
begin
  try
    ImgInst00.Picture.Bitmap.Handle := LoadBitmap(h, 'Pic00');
  finally
    FreeLibrary(h);
  end;
end;
Gruß Hawkeye

fwsp 9. Apr 2006 17:02

Re: Fehler beim Laden eines Bilds aus .dll
 
juhuu, jetzt klappt es. danke.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:18 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz