Thema: Delphi Canvas.CopyRect ?¿?

Einzelnen Beitrag anzeigen

mangaka

Registriert seit: 9. Apr 2005
44 Beiträge
 
Delphi 7 Personal
 
#1

Canvas.CopyRect ?¿?

  Alt 14. Apr 2005, 19:47
Moin an die DelphiPriester(kappiert->Priester, Orakel^^)
Ich habe eine Frage zu einem Abschnitt in meine Buch(Delphi für Kids)

Ich bin grad bei dem Kapitel über Canvas.
Hier wird beschrieben wie man eine Zeichnung von Canvas erzeugt, bewegt und löscht.
Hier der Code:
Delphi-Quellcode:
//Angaben der Variablen
procedure TForm1.FormCreate(Sender: TObject);
begin
x := 30;
y := 30;
Dicke := 180;
end;
//Erzeugung der Zeichnung
procedure TForm1.Button1Click(Sender: TObject);
begin
Canvas.Ellipse(x,y,x+Dicke,y+Dicke);
end;


//Bewegung
procedure TForm1.Button2Click(Sender: TObject);
var
i: Integer;
Quelle, Ziel: TRect;
begin
  for i := x-5 to ClientWidth - Dicke - x - 5 do
    begin
    Quelle := Rect(i, y-5, i+Dicke+5, y+Dicke+5);
    Ziel := Rect(i+1, y-5, i+Dicke+6, y+Dicke+5);
    Canvas.CopyRect(Ziel,Canvas,Quelle);
    sleep(10);
    end;
end;
Meine Frage bezieht sich nur auf die Bewegung, alles andere ist ja nicht wirklich schwer.
Was zum Teufel bedeutet das:
Quelle := Rect(i, y-5, i+Dicke+5, y+Dicke+5);
Ziel := Rect(i+1, y-5, i+Dicke+6, y+Dicke+5);
Ich versteh das so, dass die Quelle und das Ziel angebgen werden. Doch warum verschoben(y-5...)?

Könnt ihr mir das erklären?

Und wenn ich den Code ohne diese Verschiebung ausführe bekomme ich son dummen Streifen hinter den sich bewegenden Kreis.

[edit=Christian Seehase]Delhpi-Tags gesetzt. Bitte künftig selber machen. Mfg, Christian Seehase[/edit]
  Mit Zitat antworten Zitat