![]() |
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:
der debugger sagt es liegt an diesem code
---------------------------
Musik-Suite - strela-comp --------------------------- Bitmap image is not valid. --------------------------- OK ---------------------------
Delphi-Quellcode:
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?
ImgInst00.Picture.Bitmap.LoadFromStream(R);
hier die gesamtheit der prozedur, die die bilder lädt:
Delphi-Quellcode:
ausschnitt aus der .rc der .dll
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);
Code:
danke.
Pic00 BITMAP "Oboe.bmp"
Pic01 BITMAP "Trompete.bmp" |
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 ;) |
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. |
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); |
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 --------------------------- |
Re: Fehler beim Laden eines Bilds aus .dll
Hallo,
versuche es einmal so:
Delphi-Quellcode:
Gruß Hawkeye
h := LoadLibrary('Pictures.dll');
if h <> 0 then begin try ImgInst00.Picture.Bitmap.Handle := LoadBitmap(h, 'Pic00'); finally FreeLibrary(h); end; end; |
Re: Fehler beim Laden eines Bilds aus .dll
juhuu, jetzt klappt es. danke.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:09 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