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]