![]() |
Absturz beim Laden eines Image aus Imagelist
ZIEL: Ein Bitmap aus einer imagelist in ein Timage lade.
PROBLEM: programmabsturz! also ich hab ja mal gesucht hier und es gibt immer die gleiche lösung zum laden eines image:
Code:
das ganze läuft über button1.click blabla
ImageList1.GetBitmap(0,Image1.Picture.Bitmap)
wenn ich jetzt den button anklicke, hängt sich die anwendung sofort auf und ich kann nichts mehr machen außer task-manager -> sofort beenden. woran kann das liegen??? gibts keine bessere lösung images aus ner imagelist zu laden?? NEBENPROBLEM: GIF'S in Images. ich weiß nicht wie ich die comonents integriere!! ich hab einige links zu downloads von den gif-componenten gefunden.. aber WAS muss ich dann mit den dingern amchen, um ein bestehendes projekt auf gifs zu trainieren ????? DANKE IM VORAUS!!! :cyclops: |
Re: Absturz beim Laden eines Image aus Imagelist
Delphi-Quellcode:
Versuchs mal so.
ImageList1.Draw(Image1.Canvas,0,0,0);
Allerdings vorher das Image auf die richtige Grösse bringen (Width/Height). |
Re: Absturz beim Laden eines Image aus Imagelist
Wenn sich Delphi aufhängt, greifst Du meist auf nicht existierende Speicherbereiche zu. Darum mal ein Schuss ins Blau: Bitmap ist nicht NIL?
|
Re: Absturz beim Laden eines Image aus Imagelist
was ist "NIL" ???
die bitmaps sind ganz normale *.bmp in der größe 7,47 KB und dem format 50x50 pixel warum müssen in einer imagelist alle bilder die geliche größe habe??? ich kann auch verschiedene bilder mit verschiedenen größen in eine imagelist speichern ......... |
Re: Absturz beim Laden eines Image aus Imagelist
Teste mal
Delphi-Quellcode:
Wenn sich es dann immer noch aufhängt, wars das nicht. Falls Du eine Meldung siehst, ist Deine Bitmap einfach noch nicht initialisiert.
if (Image1.Picture = NIL) or (Image1.Picture.Bitmap = NIL)
then ShowMessage('Bitmap noch nicht initalisiert!') else ImageList1.GetBitmap(0,Image1.Picture.Bitmap); |
Re: Absturz beim Laden eines Image aus Imagelist
hm habs mit dem code von mario probiert. es kommt keine meldung, es passiert gar nichts das programm stürzt SOFORT ab.
wie kann ich denn überhaupt nachgucken ob meine bilder initialisiert sind und wie kann ich sie initialisieren auf nummer sicher ??? |
Re: Absturz beim Laden eines Image aus Imagelist
Mit dem Vergleich auf NIL testet Du, ob Sie auf einen Speicherbereich zeigen. Nun könnte es theoretisch sein, dass dieser Speicherbereich ungültig ist. Das könnte aber eigentlich nur passieren, wenn Du zuvor:
Delphi-Quellcode:
aufgerufen hast, dass halte ich jetzt aber für unwahrscheinlich.
Image1.Picture.Bitmap.Free
Ganz sicher, dass er an dieser Stelle hängen bleibt? |
Re: Absturz beim Laden eines Image aus Imagelist
Zitat:
Du würdest in Deiner Abfrage nämlich versuchen, auf <Image1.Picture.Bitmap> zuzugreifen, obwohl Image1.Picture NIL sein könnte, oder? Vielleicht so:
Delphi-Quellcode:
Nach Bedarf noch die beiden Else-Zweige abarbeiten.
if (Image1.Picture <> NIL) then
if (Image1.Picture.Bitmap <> NIL) then // tue was mit dem Bitmap |
Re: Absturz beim Laden eines Image aus Imagelist
Normalerweise wertet Delphi boolsche Ausdrücke unvollständig aus. Wenn erste Bedingung bereits erfüllt ist, gibt es keinen Grund für Delphi, die zweite Bedingung noch zu prüfen, da es am Ergebnis nichts mehr ändert.
Es ist also für den Standardfall korrekt. |
Re: Absturz beim Laden eines Image aus Imagelist
hmmmmmmmm wie initialisiere ich denn meine bitmaps so dass sie GANZ SICHER nicht NIL sind??
@ dannyboy: hm aber der code fragt doch ab, ob das IMAGE initialisiert ist. aber das prog hängt sich in dem moment auf, wenn dem IMAGE das bild aus der IMAGELIST zugeordnet wird. ist also nicht eher das problem, ob das bild aus der IMAGELIST initialisiert ist???? *ausprobier* das problem ist echt komisch!! normal muss das doch geehen!! please help me :cry: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:24 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