AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Paintbox Zeichnung löschen
Thema durchsuchen
Ansicht
Themen-Optionen

Paintbox Zeichnung löschen

Ein Thema von ferby · begonnen am 8. Aug 2006 · letzter Beitrag vom 27. Dez 2010
Antwort Antwort
Seite 1 von 2  1 2      
ferby

Registriert seit: 15. Aug 2004
Ort: Wien
841 Beiträge
 
Delphi 2010 Enterprise
 
#1

Paintbox Zeichnung löschen

  Alt 8. Aug 2006, 12:01
Hallo,

Ich zeichne auf einen TBitmap und lasse es dann im OnPaint ereignis auf eine TPaintBox Zeichnen.

Meine Frage: Wie bekomme ich die Zeichnung wieder weg???
Wenn ich PaintBox.Visible:=false setze, dann bleibt die Zeichnung noch immer....

Ich nehm mal an ich muss den Inhalt vom Bitmap löschen, aber wie?
  Mit Zitat antworten Zitat
Xyres

Registriert seit: 9. Jun 2006
15 Beiträge
 
#2

Re: Paintbox Zeichnung löschen

  Alt 8. Aug 2006, 12:05
also ich habe da immer einfach ein rechteck über die ganze zeichenfläche in der hintergrundfarbe gezeichnet. dann ist alles weg ^^.

mfg xyres
Denken ist das größte Vergnügen der menschlichen Rasse
  Mit Zitat antworten Zitat
ferby

Registriert seit: 15. Aug 2004
Ort: Wien
841 Beiträge
 
Delphi 2010 Enterprise
 
#3

Re: Paintbox Zeichnung löschen

  Alt 8. Aug 2006, 12:10
Hallo,

ja die Möglichkeit habe ich auch gesehen,
aber es muss doch eine Möglichkeit geben einfach den Inhalt zu löschen,
ohne ihn zu überzeichnen... oder nicht?


Bzw. Was ist wenn ich den INhalt wirklich nur "unsichtbar" machen will, und nicht löschen, weil ich den Inhalt später noch brauche. Dann kann ich nicht einfach drücber Zeichnen.
  Mit Zitat antworten Zitat
Xyres

Registriert seit: 9. Jun 2006
15 Beiträge
 
#4

Re: Paintbox Zeichnung löschen

  Alt 8. Aug 2006, 13:15
sry.... da weiß ich jetzt auch nich weiter, dass wird aber sicher nich so einfach sein, denn du musst ja irgendwie dann auf die einzelnen zeichnungen ansprechen können .
Denken ist das größte Vergnügen der menschlichen Rasse
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Paintbox Zeichnung löschen

  Alt 8. Aug 2006, 13:23
Hi,

löschen mit Canvas.Fillrect(Rect) und Hintergrundfarbe. Neu anzeigen mit neu zeichnen; wie beim ersten mal.
"Unsichtbar machen" und neu anzeigen heißt auch nur neu zeichnen.

Gruß oki
  Mit Zitat antworten Zitat
ferby

Registriert seit: 15. Aug 2004
Ort: Wien
841 Beiträge
 
Delphi 2010 Enterprise
 
#6

Re: Paintbox Zeichnung löschen

  Alt 8. Aug 2006, 13:48
Hallo,

ok wenns anders nicht geht dann mach ich es so.

Habe es jetzt so gelöst

Delphi-Quellcode:
bm.Canvas.Brush.Color:=clblue;
bm.Canvas.Fillrect(bm.Canvas.ClipRect);


bm = TBitmap
clblue = Hintergrundfarbe
  Mit Zitat antworten Zitat
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#7

Re: Paintbox Zeichnung löschen

  Alt 30. Sep 2006, 18:02
es geht noch anders: einfach die größe der paintbox oder image auf 1,1 setzten und dann wieder zurück *G*
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#8

Re: Paintbox Zeichnung löschen

  Alt 30. Sep 2006, 19:46
Zitat von ferby:
Delphi-Quellcode:
bm.Canvas.Brush.Color:=clblue;
bm.Canvas.Fillrect(bm.Canvas.ClipRect);
Das ist nicht ok - weil ClipRect den neu zu zeichnenden Bereich des Canvas angibt und dieses ist auch öfters kleiner als die Paintbox selber. Z.b. wenn du nur eine Ecke eines Fensters auf deine PaintBox schiebst und dann wieder wegbewegst oder minimierst. Nutze lieber bm.BoundsRect.
  Mit Zitat antworten Zitat
beastofchaos
(Gast)

n/a Beiträge
 
#9

AW: Paintbox Zeichnung löschen

  Alt 26. Dez 2010, 16:11
Das Thema ist vll sehr alt, aber das Problem ist das selbe.
Ich arbeite mit Delphi 7 und will für mein MSA-Referat in Informatik (bin Schüler) mit meinem Freund ein Minigolfprogramm bauen.

Mein Ziel ist es, zur Richtung- und Geschwindigkeitsberechnung eine Linie von der Maus zur Kugel zu erzeugen. Bisher hab ich immer mit einem image gearbeitet. Jetzt versuch ich es, wegen besserer Handhabung mit Bitmap und Paintbox. Bei image gab es den Befehl "image.picture:=Nil;". Gibnt es wirklich keinen Befehl heutzutage, der das auch mit einer Bitmap/Paintbos macht?
Hier mal der Quelltext:

Delphi-Quellcode:
procedure TForm1.PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
if not Timer1.Enabled then begin
bmp.Canvas.Pen.Color:=ClWhite;
bmp.Canvas.brush.Color:=ClWhite;
bmp.Canvas.MoveTo(trunc(d-PaintBox1.Left),trunc(e-PaintBox1.top));
bmp.Canvas.LineTo(Maus.x,Maus.y);
PaintBox1.Repaint;
bmp.Canvas.Brush.Color:=clBlue;
bmp.Canvas.Pen.Color:=ClBlack;
Maus:=PaintBox1.ScreentoClient(Mouse.CursorPos);
d:=(x1+x2)/2;
e:=(y1+y2)/2;
bmp.Canvas.MoveTo(trunc(d-PaintBox1.Left),trunc(e-PaintBox1.top));
bmp.Canvas.LineTo(Maus.x,Maus.y);
bmp.Canvas.Ellipse(x1,y1,x2,y2);
PaintBox1.Repaint;
end;
end;
Wie ihr seht, übermalt er mit Weiß die alte Linie und berechnet die neue. Leider blinkt die Linie imemr wieder und auch ein kleiner Teil in der Kugel (auch in Paintbox gezeichnet). Die Kugel ist innen Blau und dauernd geht halt ein weißer Strich über eine bestimmte Stelle. Könnt euch das auch mal selbst anschauen, hier eine Zip-Satei mit allen Dateien: http://rapidshare.com/files/439357797/Test.zip
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#10

AW: Paintbox Zeichnung löschen

  Alt 26. Dez 2010, 16:21
Ales was in einer Paintbox gemalt wir wird im OnPaint gemalt, dies ist im Idealfall ein Offscreenbitmap.
Das Malen kann mit Paintbox1.invalidate ausgelöst werden.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz