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 2 von 2     12   
beastofchaos
(Gast)

n/a Beiträge
 
#11

AW: Paintbox Zeichnung löschen

  Alt 26. Dez 2010, 16:28
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.

Geändert von beastofchaos (26. Dez 2010 um 16:30 Uhr)
  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
 
#12

AW: Paintbox Zeichnung löschen

  Alt 26. Dez 2010, 19:01
wenn Du invalidate aufrufst und im OnPaint nichts gemalt wird, ist die Paintbox doch leer
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
hathor
(Gast)

n/a Beiträge
 
#13

AW: Paintbox Zeichnung löschen

  Alt 26. Dez 2010, 19:09
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;
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.142 Beiträge
 
Delphi 12 Athens
 
#14

AW: Paintbox Zeichnung löschen

  Alt 26. Dez 2010, 19:12
Delphi-Referenz durchsuchenTCanvas.FillRect oder Delphi-Referenz durchsuchenTCanvas.Rectangle
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
beastofchaos
(Gast)

n/a Beiträge
 
#15

AW: Paintbox Zeichnung löschen

  Alt 26. Dez 2010, 22:14
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?


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
  Mit Zitat antworten Zitat
beastofchaos
(Gast)

n/a Beiträge
 
#16

AW: Paintbox Zeichnung löschen

  Alt 26. Dez 2010, 22:25
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 ).

Geändert von beastofchaos (26. Dez 2010 um 22:39 Uhr)
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#17

AW: Paintbox Zeichnung löschen

  Alt 27. Dez 2010, 07:15
...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...

Geändert von hathor (27. Dez 2010 um 07:18 Uhr)
  Mit Zitat antworten Zitat
beastofchaos
(Gast)

n/a Beiträge
 
#18

AW: Paintbox Zeichnung löschen

  Alt 27. Dez 2010, 09:00
...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
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#19

AW: Paintbox Zeichnung löschen

  Alt 27. Dez 2010, 09:19
bmp1.Width und bmp1.Height habe ich nachträglich eingefügt - im Original steht bei mir was anderes...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 22:58 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