![]() |
Wie lösch ich eine Bitmap aus einer Paintbox??
hi,
gibt es einen einfachen Befehl wie ich eine Bitmap aus ner paintbox löschen kann?? habs schon mit - X ist das Objekt welches die Bitmap enthält - X.Destroy oder auch X.Free versucht. sowohl im forum als auch in google find ich nichts! vllt kann mir ja hier einer weiter helfen. ich bedanke mich schon mal im voraus für konstruktive vorschläge ;) mfg |
Re: Wie lösch ich eine Bitmap aus einer Paintbox??
Hallo
Sollte so gehen:
Delphi-Quellcode:
PaintBox1.Canvas.FillRect(PaintBox1.ClientRect);
|
Re: Wie lösch ich eine Bitmap aus einer Paintbox??
hab hier nen timer... der soll in jedem intervall eine bitmap erstellen und dann wieder löschen... die bitmap soll sich also mit der zeit in der paintbox nach unten bewegen.. das problem ist halt nur das ich die bitmaps nicht gelöscht kriege
toms antwort funktioniert nicht... da werden dann überhaupt keine bitmaps mehr angezeigt! Bemerkung: TetrisBox ist die Paintbox ;)
Delphi-Quellcode:
procedure TForm1.TimerTimer(Sender: TObject);
begin Brix4 := TBitmap.Create; Brix4.LoadFromFile(Random_Parts); Tetrisbox.Canvas.Draw(240,y,brix4); y:=y+30; Brix4.Canvas.FillRect(clientrect); //TetrisBox.Canvas.FillRect(TetrisBox.ClientRect); if y >= 400 then Timer.Enabled := False; end; |
Re: Wie lösch ich eine Bitmap aus einer Paintbox??
dieser Befehl löscht/übermalt die gesamte PaintBox, also mußt du das vorm Neuzeichnen deines Bildes machen :zwinker:
oder du übermalst nur den Teil, welche gelöscht werden soll ... die Position des Rechteckes kannst du ja selbst bestimmen. PS: vergiß nicht die Farbe zu setzen, bevor du löschts (vorallem Brush.Color)
Delphi-Quellcode:
PS: wird dein Brix4 (TBitMap) auch irgendwann wieder freigegeben?
Brix4 := TBitmap.Create;
Brix4.LoadFromFile(Random_Parts); TetrisBox.Canvas.BrushColor := {TForm1.}Color; TetrisBox.Canvas.FillRect(TetrisBox.ClientRect); Tetrisbox.Canvas.Draw(240,y,brix4); y:=y+30; |
Re: Wie lösch ich eine Bitmap aus einer Paintbox??
was meinst du mit freigegeben? ;)
|
Re: Wie lösch ich eine Bitmap aus einer Paintbox??
Wenn man Speicher anfordert, sollte man den auch irgendwo wieder freigeben, sonst hat man bald keine Freunde mehr unter seinen Anwendern ;)
|
Re: Wie lösch ich eine Bitmap aus einer Paintbox??
Zitat:
Zitat:
|
Re: Wie lösch ich eine Bitmap aus einer Paintbox??
Normalerweise macht man solche Animationen, wie in deinem Fall, mit Puffer-Bitmaps. Sonst wirst du nicht glücklich werden.
|
Re: Wie lösch ich eine Bitmap aus einer Paintbox??
Zitat:
|
Re: Wie lösch ich eine Bitmap aus einer Paintbox??
Zitat:
Denn die Antwort steht doch schon hier: ![]() |
Re: Wie lösch ich eine Bitmap aus einer Paintbox??
das mit der Farbe hatte ich eigentlich schon gezeigt.
Delphi-Quellcode:
wie gesagt, du kannst für FillRect die Zeichenposition selbst festlegen und mußt dort nur den Bereich angeben, welcher gemalt werden soll.
var Brix4: TBitMap;
Rect: TRect; Brix4 := TBitmap.Create; Brix4.LoadFromFile(Random_Parts); //Rect.Left := 0; // alles selber setzen //Rect.Top := 0; //Rect.Right := TetrisBox.Width; //Rect.Bottom := y - 1; Rect := TetrisBox.ClientRect; // oder etwas kürzer Rect.Bottom := y - 1; TetrisBox.Canvas.BrushColor := Color; TetrisBox.Canvas.FillRect(Rect); Tetrisbox.Canvas.Draw(240, y, Brix4); Brix4.Free; y := y + 30; PS: verändert sich Random_Parts wärend das Bild runterrutscht? wenn nicht, dann könntest du Brix4 nur am Anfang erstellen (.Create) und laden (.LoadFromFile) und ganz am Ende erst wieder freigeben (.Free) ... so wie es jetzt wird, muß das Bild ja bei jedem Schritt neu erstellt, geladen und freigegeben werden. |
Re: Wie lösch ich eine Bitmap aus einer Paintbox??
soo... vielen dank!!! klappt jetzt..
weiß einer noch wie man die bitmaps bewegen kann mit der tastatur... shapes bewegt man ja mit "Shp.Top := Shp.Top+1", wenn ich mich nicht irre... aber bei bitmaps gibts ja nicht die option "top". |
Re: Wie lösch ich eine Bitmap aus einer Paintbox??
nur eine Frage pro Thread :warn:
[flüster]
Delphi-Quellcode:
veränder einfach X und Y :zwinker:
.Canvas.Draw(x, y, Brix4);
[/flüster] |
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