Einzelnen Beitrag anzeigen

thechus

Registriert seit: 17. Dez 2011
30 Beiträge
 
#1

CopyRect - Verschiebung nach links?

  Alt 3. Jun 2012, 10:58
Liebes Forum,

ich möchte mit Hilfe von Canvas.Copy eine Gruppe von Bitmaps bewegen.
Um genau zu sein habe ich 2 "Armeen", die sich auf einander zubewegen.
Die linke Armee bewegt sich wie geplant nach rechts:

Code:
procedure TForm1.TimerArmeeRTimer(Sender: TObject);
 var x :integer;
     Ziel,Quelle :TRect;
 begin
 x := 1;
 repeat
  x := x+1;
  Sleep(60);
  Quelle := Rect(105 + x,240,184 + x,416);
  Ziel := Rect(105 + (x+1),240,184 + (x+1),416);
  canvas.CopyRect(Ziel, canvas, Quelle);
 until
  x >= 164;
 end;
Bei der zweiten Armee aber, die sich von rechts nach links zu bewegen hat, bewegt sich die Quelle bei folgender Prozedur nur ganz kurz und hört dann auf. Die Bitmaps verschwinden dann leider an dessen Grenze :

Code:
procedure TForm1.TimerAmeeGTimer(Sender: TObject);
 var x :integer;
     Ziel,Quelle :TRect;
 begin
 x := -1;
 repeat
  x := x-1;
  Sleep(40);
  Quelle := Rect(400 + (x),248,512 + (x),392);
  Ziel := Rect(400 + (x-1),248,512 + (x-1),392);
  canvas.CopyRect(Ziel, canvas, Quelle);
 until
  x <= 200;
 end;

Ich habe leider wirklich keine Ahnung, was ich da falsch mache

Ich freue mich auf eure Hilfe,

Vielen Dank und Gruß,
thechus
  Mit Zitat antworten Zitat