Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Paintbox Zeichnung löschen (https://www.delphipraxis.net/74755-paintbox-zeichnung-loeschen.html)

beastofchaos 26. Dez 2010 16:28

AW: Paintbox Zeichnung löschen
 
Ich male mit Paintbox1.Repaint statt invalidate und funktioniert ;) Frage ist ja eher, ob es einen Befehl gibt, der vll so aussieht: PaintBox1.Clear;
Wenn ich Paintbox1:=Nil mache, kommt während dem Programm (gleich wenn eine MouseMove-prozedur erzeugt wird) eine Fehlermeldung.

Vll gibt es statt Löschen oder Überzeichnen noch eine Lösung, mit der ich eine einzige akkutalisierende Linie zwischen Linie und Kugel habe.

Bummi 26. Dez 2010 19:01

AW: Paintbox Zeichnung löschen
 
wenn Du invalidate aufrufst und im OnPaint nichts gemalt wird, ist die Paintbox doch leer:?::?:

hathor 26. Dez 2010 19:09

AW: Paintbox Zeichnung löschen
 
Nicht optimiert, aber geht:

Delphi-Quellcode:
Procedure Bmp1Clear;
var i : Integer;
BEGIN
for i:= 0 to bmp1.Width do
BEGIN
 with Bmp1.Canvas do
 Begin
 pen.color:= 0;
 moveto(i,bmp1.Height); lineto(i,0);
 end;
END;
END;

himitsu 26. Dez 2010 19:12

AW: Paintbox Zeichnung löschen
 
Delphi-Referenz durchsuchenTCanvas.FillRect oder Delphi-Referenz durchsuchenTCanvas.Rectangle

beastofchaos 26. Dez 2010 22:14

AW: Paintbox Zeichnung löschen
 
Zitat:

Zitat von himitsu (Beitrag 1070530)

Bei beiden Proceduren muss etwas fehlen. Mein Program hat Problem mit dieser procedure zum Beispiel: "procedure Rectangle(X1, Y1, X2, Y2: Integer); override;". Da fehlt schon noch irgendetwas, oder?


Zitat:

Zitat von hathor (Beitrag 1070529)
Nicht optimiert, aber geht:
Delphi-Quellcode:
Procedure Bmp1Clear;
var i : Integer;
BEGIN
for i:= 0 to bmp1.Width do
BEGIN
 with Bmp1.Canvas do
 Begin
 pen.color:= 0;
 moveto(i,bmp1.Height); lineto(i,0);
 end;
END;
END;

Ist die Farbe 0 = Durchsichtig oder weiß? weil Übermalen hatten wir schon und statt der for-Schleife und Linienerzeugen, kann man auch einfach ein Rectangle zeichnen von oben links bis unten rechts ;)

beastofchaos 26. Dez 2010 22:25

AW: Paintbox Zeichnung löschen
 
Zitat:

Zitat von Bummi (Beitrag 1070527)
wenn Du invalidate aufrufst und im OnPaint nichts gemalt wird, ist die Paintbox doch leer:?::?:

Mein Problem liegt wirklich zwischen/in den Ohren(hier wohl eher in den Augen) xD Ich dachte invalidate ist ein andere Befehl für Repaint... Hab mal bei leo.org invalidate nachgeguckt und versteh, dass es es annulliert ;)



edit1: So Leute, saß heute 5 Stunden dran und habs nicht hinbekommen. War den ganzen Abend weg, komm wieder und es funktioniert. Weiß auch wie jetzt :p
In meinem MouseMove-Ereignis hat er ja erst die alte Linie übermalt "Repaint" ausgeführt. die neue gezeichnet und nochmal "Repaint" gemacht. Wenn ich das erste weglasse, ist auch das Blinken weg. Ich brauche nämlich einfach nur in der Bitmap die alte Linie übermalen ( nicht in der Paintbox zusätzlich, da die sowieso jedesmal die Bitmap neuzeichnet ).

hathor 27. Dez 2010 07:15

AW: Paintbox Zeichnung löschen
 
Zitat:

Zitat von beastofchaos (Beitrag 1070549)
...Ist die Farbe 0 = Durchsichtig oder weiß? weil Übermalen hatten wir schon und statt der for-Schleife und Linienerzeugen, kann man auch einfach ein Rectangle zeichnen von oben links bis unten rechts ;)

clBlack = 0

Ich habe das einfach aus einem Programm von mir herauskopiert und da passt es - denn Rectangle oder was anderes würde den ganzen Bereich übermalen...

beastofchaos 27. Dez 2010 09:00

AW: Paintbox Zeichnung löschen
 
Zitat:

Zitat von hathor (Beitrag 1070562)
Zitat:

Zitat von beastofchaos (Beitrag 1070549)
...Ist die Farbe 0 = Durchsichtig oder weiß? weil Übermalen hatten wir schon und statt der for-Schleife und Linienerzeugen, kann man auch einfach ein Rectangle zeichnen von oben links bis unten rechts ;)

clBlack = 0

Ich habe das einfach aus einem Programm von mir herauskopiert und da passt es - denn Rectangle oder was anderes würde den ganzen Bereich übermalen...

Du malst doch auch in deinem Programm alles, bloß malst du einzelne Linien. Ich mach das ganze halt mit Rectangle -> Ergebnis ist doch das gleiche ;)
Und da mein Hintergrund weiß ist, hiflt mir schwarz an der Stelle wenig. Lieber ClWhite xD

hathor 27. Dez 2010 09:19

AW: Paintbox Zeichnung löschen
 
bmp1.Width und bmp1.Height habe ich nachträglich eingefügt - im Original steht bei mir was anderes...


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:57 Uhr.
Seite 2 von 2     12   

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