Einzelnen Beitrag anzeigen

cltom

Registriert seit: 22. Sep 2005
221 Beiträge
 
Delphi 12 Athens
 
#5

Re: TBitmap free? Invalid Pointer Operation

  Alt 9. Okt 2007, 11:09
danke Euch einmal.


Zitat von OregonGhost:
Du weist der Referenz bmp zunächst ein neues Objekt zu (Rückgabewert des Konstruktors, wenn man so will), und dann weist du ihm ein anderes Objekt zu (Image1.Picture.Bitmap). Du kannst entweder den Konstruktoraufruf weglassen (dann muss dir klar sein, dass du dasselbe Objekt referenzierst), oder statt der Zuweisung machst du bmp.Assign(Image1.Picture.Bitmap), dann wird die Bitmap nach bmp kopiert.
jop, wenn ich das Create weglasse, gibt es auch kein Problem. Bis dato die beste Lösung.


Zitat von turboPASCAL:
[delphi]
bmp.Assign( Image1.Picture.Bitmap ); // <--&lt;&lt;
Das entfernt die "invalid pointer operation" meldung, führt aber zu einer allgemeinen Schutzverletzung. Was wohl nicht an Deiner Lösung liegt sondern an einem Seiteneffekt mit dem Avicreator (siehe unten)

Zitat von M. Hassmann:
so wie der quelltext dort steht müsste man free aufrufen.
was machst du denn zwischen durch?
es sollen/werden mehrere bitmaps aus images erstellt und die via AVICreator in ein AVI-File geschrieben. Das geht auch schon problemlos über andere Wege (bitmaps aus der clipboard einfügen). Wenn ich das bitmap aber wie oben zuweise (create, assign, free - oder auch create, := und free) gibt es beim Beenden Fehlermeldungen.
  Mit Zitat antworten Zitat