![]() |
Problem beim Zeichnen eines neuen Bitmap
Entschuldigt den Titel, ist vermutlich wenig aufschlussreich, aber einen passenderen finde ich nicht. :gruebel:
Folgender Code verhält sich nicht wie ich es erwarten würde:
Delphi-Quellcode:
Beim ersten Aufruf erscheint kein Bild, erst wenn der Code mindestens ein weiteres Mal aufgerufen wird, verhält er sich wie erwartet.
procedure TMainForm.PaintCoords;
var Bitmap: TBitmap; begin Image.Picture.Bitmap.Free; Bitmap:= TBitmap.Create; Bitmap.SetSize(MaxX+1, MaxY+1); //beide global //eigentlich bischen was komplexeres, aber hiermit ist es bei mir reproduzierbar Bitmap.Canvas.LineTo(100,100); Image.Picture.Bitmap:= Bitmap; end; Mache ich grobe Fehler bei der Objekt-Erstellung, oder wo liegt der Haken? Habe schon ein wenig rumprobiert und komme tatsächlich nicht darauf. :? |
Re: Problem beim Zeichnen eines neuen Bitmap
Und so?
Delphi-Quellcode:
procedure TMainForm.PaintCoords;
var Bitmap: TBitmap; begin //Image.Picture.Bitmap.Free; Bitmap:= TBitmap.Create; try Bitmap.SetSize(MaxX+1, MaxY+1); //beide global //eigentlich bischen was komplexeres, aber hiermit ist es bei mir reproduzierbar Bitmap.Canvas.LineTo(100,100); Image.Picture.Bitmap.Assign(Bitmap); finally Bitmap.Free; end; end; |
Re: Problem beim Zeichnen eines neuen Bitmap
Selber Fehler. :pale:
Eigentlich ist es auch das (im Resultat) selbe, ob ich direkt in das alte Bild kopiere, oder die Referenz umbiege, oder? Warum bei dieser Variante eigentlich das try..finally? Wenn ich das ganze so:
Delphi-Quellcode:
umstelle, bekomme ich intressanterweise nie ein Bild, dafür aber beim Beenden:
Bitmap:= TBitmap.Create;
Bitmap.SetSize(MaxX+1, MaxY+1); Bitmap.Canvas.LineTo(100,100); Image.Picture.Bitmap.Free; Image.Picture.Bitmap:= Bitmap; Im Projekt TSP.exe ist eine Exception der Klasse EInvalidPointer mit der Meldung 'Ungültige Zeigeroperation' aufgetreten. --------------------------- Exception EInvalidPointer in Modul [...] bei 00003DAD. Ungültige Zeigeroperation. |
Re: Problem beim Zeichnen eines neuen Bitmap
Ich grab den Thread mal aus, weil ichs nochmal wissen wollte.
Ich hab mich mal Grad durch den VCL-Code gewühlt und glaube das Zuweisungen auf Picture und Bitmap (die ja Propertys sind) sowieso schon einem Assign entspricht, das erklärt zwar die Fehlermeldung noch nicht so ganz, aber hilft schon mal weiter. [Edit]Quatsch, natürlich erklärt das die Fehlermeldung. :roll: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:55 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