hi du!
also das Prinzip von der Bewegung einer Grafik ist denkbar einfach.
Du solltest wissen, dass eine Grafik ein Objekt ist. Delphi ist nuneinmal eine objektorientierte Programmiersprache

...
So nun haben die Objekte allesamt verschiedene Eigenschaften sowie Funktionen und reagieren auf ganz bestimmte Umwelteinflüsse (z.B. Mausklicks).
Dein Bild (Image-Komponente/Bitmap-Komponente) hat unter anderem die Eigenschaften Left und Top. Diese Eigenschaften charakteriesieren den Abstand vom linken und vom oberen Rand deines Fensters.
Wenn du also in eine Prozedur (z.B. FormCreate - Doppelklick auf das leere Formular und du wirst in diese Prozedur geleitet) schreibst...
Quelltext
1: 2:
| Image1.Top := 20; Image2.Left := 50; |
.... wird dein Bild um 20 Pixel nach unten und 50 Pixel nach unten verschoben.
Hier einmal das Koordinatensystem in einem Delphiformular... man beachte, dass sich der Ursprung oben links befindet:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| 0 +-------------------------X | | | | | | | | Y |
Allerdings sprechen wir hier nicht von einer Bewegung. Es handelt sich hierbei eher um ein "Hüpfen".
Wenn du - wie FloSch schon ansprach - dir also eine Schleife benutzt, kannst du jedoch eine Bewegung zustande bringen. Ich rate dir jedoch davon ab. Prinzipiell hat er recht, doch wir arbeiten dann mit einer Methode, die unseren PC regelrecht ausbremst, da eine schleife selbst ohne dieses Ausbremsen so dermaßen schnell abläuft, dass wir wieder den Eindruck bekommen wieder ein "Hüpfen" gesehen zu haben
Ich gehe darauf 'mal nicht weiter ein.
Es gibt in Delphi eine Komponente Namens Timer. Du findest sie in der Kartei "System".
Was macht diese Komponente? Grob gesagt macht sie genau das, was eine Schleife macht: Sie fürht sich selbst immer wieder aus. Der Unterschied zu Schleifen besteht jedoch darin, dass ein Interval festgelegt wird, in dem der Inhalt des Timers ausgführt wird ohne die CPU bis aufs letzte auszureizen
Wie gehen wir nun vor?
Nimm dir die Komponente Image und leg sie dir ins Formular (Form1).
Zudem krallst du dir auch einen Timer und legst ihn ebenfalls auf Form1.
Mit einem Doppelklick auf den Timer kommst du in die Prozedur, die nun wieder und wieder ausgeführt werden soll.
Hier schreibst du nun folgendes 'rein:
Quelltext
1: 2:
| Image1.Left := Image1.Left + 1; // (1) (2) (3) |
... was dort passiert dürfte leicht zu verstehen sein.
In Worten: wir nehmen uns die Eigenschat Left von Image1 (2) und erhöhen diese um einen Pixel (3) - das Ergebnis wird nun in Image1.Left (1) gespeichert.
Als letztes solltest du dir im Objektinspektor die Eigenschaft "Interval" von Timer 1 heraussuchen. Diese setzt du auf 100 (Millisekunden)
Das Bild bewegt sich jetzt von seinem Startpunkt aus nach rechts.
Was wir dabei gemacht haben.... einfach eine Eigenschaft in kurzen Zeitabständen nach und nach verändert.
ich hoffe, ich konnte dir helfen
...
greetz
//me
P.S. - Wenn du mehr Speed willst, erhöhe die Anzahl der Pixel, um die sich dein Bild bewegen soll oder verringere den Interval des Timers.