HI,
um die schönen Formatierungen wie in den obrigen Posts hinzubekommen, verwende
NICHT Code sondern Delphi-Tags. Die gibts übrigens in der Menüleiste unter "Oft genutzt".
so, zu deinem Problem:
- Warum verwendest du lokale Variablen, die genauso heißen, wie deine Konstanten?
- Wie willst du denn damit Werte ungleich 0 erreichen?
- Mal debuggen und gucken, was dx und dy so für werte haben.
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
var x,y:integer;
begin
// x = dx;
// y = dy;
if (Shape1.Top <= 0) or (Shape1.Top >= image1.ClientHeight - Shape1.Height) then
begin
dy := -dy;
end;
if (Shape1.Left <= 0) or (Shape1.Left >= image1.ClientWidth - Shape1.Width) then
begin
dx := -dx;
end;
Shape1.Left := Shape1.Left + dx;
Shape1.Top := Shape1.Top + dy;
end;
Bernhard