Thema: Delphi pmXOR-Grafikproblem

Einzelnen Beitrag anzeigen

Benutzerbild von alleinherrscher
alleinherrscher

Registriert seit: 8. Jul 2004
Ort: Aachen
797 Beiträge
 
Delphi XE2 Professional
 
#2

Re: pmXOR-Grafikproblem

  Alt 5. Nov 2009, 15:46
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Image1.Canvas.Pen.Mode := pmXOR;
  Image1.Canvas.Ellipse(x1, y1, x2, y2);
  Inc(x1, 5);
  Inc(x2, 5);
  Image1.Canvas.Ellipse(x1, y1, x2, y2)
end;
Also der erste Ellipse Befehl wird dir den alten Kreis löschen, der zweite Ellipse Befehl zeichnet dir versetzt einen neuen. Soweit so gut, aber im ersten Timerschritt gibt es wohl keinen Kreis zum löschen, d.h. da würde der zweite Ellipse Befehl ausreichen.

Ich würde da, wo du das Programm initialisierst und auch den roten Kreis zeichnest (auf jedenfall bevor der Timer startet), einfach einmal mit pmXOR den ersten Ellipse-Befehl ausführen, sodass schonmal 1 Kreis da ist, der im ersten Timerschritt gelöscht werden kann

//edit: Ich würde übrigens den roten Kreis nicht beim Formcreate Ereignis zeichnen lassen. Theoretisch kann es sein, dass eine Komponente wie das Image noch nicht erstellt worden sind und dann gibts ne unschöne AV. Nimm besser das Ereignis FormShow.

Grüße
„Software wird schneller langsamer als Hardware schneller wird. “ (Niklaus Wirth, 1995)

Mein Netzwerktool: Lan.FS
  Mit Zitat antworten Zitat