Hallo,
vielleicht könnt ihr mir ja helfen. Ich möchte ein Bild in einer Paintbox darstellen. Das Bild bekomme ich aus einer Funktion von der ich nur die Rückgabeparameter kenne. Das sind Pointer auf die Bildhöhe, die Bildweite und auf ein VideoPicture. Diese Funktion heißt 'imageget(var buffy: TBitmap, var x, y: integer)'. Buffy ist ein Pointer auf eine Speicherstelle, um das Videobild aufzunehmen.
Nach der Speicherreservierung mit GetMem wird die Funktion 'imageget' auch erfolgreich ausgeführt. DieWerte x und y werden richtig zurückgegeben. Nur wenn ich jetzt das Bitmap darstellen möchte stürzt mein Programm mit folgeneder Fehlermeldung ab: 'Access violation at adress... . Read of adress...'.
Mir scheint es, dass ich den Pointer nicht mehr derefenzieren kann, dass das Programm irgendwas ausliest. Habe ich mit dem Pointer aud das Bitmap etwas falsch gemacht?
Danke in voraus.
tom334
Der Quellcode für die Darstellung des Bildes lautet momentan:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24:
| var bild: TBitmap; x, y: integer;
buffy: ^TBitmap;
begin
bild := TBitmap.Create;
GetMem(buffy, $1F0000);
cam.imageget(buffy^, x, y); PaintBox1.Canvas.Draw(0,0,buffy^); ShowMessage('Weite: '+inttostr(x)+' Höhe: '+inttostr(y));
FreeMem(buffy);
end; |
Moderiert von
Peter Lustig: Delphi-Tags hinzugefügt