Forum: Object-Pascal / Delphi-Language
Delphi
by Uwe Raabe,
15. Sep 2012
Der Getter von TPicture.Bitmap erzeugt automatisch eine neue Instanz, wenn keine da ist oder kein TBitmap ist.
Forum: Object-Pascal / Delphi-Language
Delphi
by Uwe Raabe,
12. Sep 2012
Ich auch nicht - denn bei mir funktioniert das wie erwartet. Entweder machst du irgendetwas anders oder es hängt an der Delphi-Version.
Kannst du mal ein Minimalprojekt bereitstellen, bei dem dein Problem auftritt?
Forum: Object-Pascal / Delphi-Language
Delphi
by Uwe Raabe,
9. Sep 2012
Das SetSize wie auch das Setzen von Width und Height auf 0 sind überflüssig. Das FillRect sollte eigentlich ausreichen, ein schwarzes Bitmap zu erzeugen. Pen.Color := black passt aber nicht besonders gut dazu.
Man kann ein Bitmap nicht "löschen", lediglich mit einer Farbe komplett übermalen.
Forum: Object-Pascal / Delphi-Language
Delphi
by Uwe Raabe,
9. Sep 2012
Im TPaintBox.OnPaint soll auch nur das aktuelle Bild (und zwar immer das ganze) gezeichnet werden. Wie das auszusehen hat ist eine andere Geschichte.
Allerdings funktioniert das mit dem Zeichnen auf TImage.Picture.Bitmap.Canvas schon. Wichtig dabei ist aber ein vorheriges SetSize, um die Bitmap auch so groß zu machen, wie das Image.
Etwas Code wäre hilfreich.
Forum: Object-Pascal / Delphi-Language
Delphi
by Uwe Raabe,
9. Sep 2012
Du solltest nicht auf dem Canvas des Image malen, sondern auf panel1.Picture.Bitmap.Canvas:
panel1.Top:=0;
panel1.Left:=0;
panel1.Width:=screen.DesktopWidth;
panel1.Height:=screen.DesktopHeight;
panel1.Picture.Bitmap.SetSize(panel1.Width, panel1.Height);
panel1.Picture.Bitmap.Canvas.Brush.Color:=clblack;
panel1.Picture.Bitmap.Canvas.FloodFill(0,0,clblack,fsSurface);