@Jeez ... also soo gefaellt mir dein Code schon viel besser ^^ .. aber haettest dui nicht while statt for(; verwenden koennen ? ^^
so und aus spass an der freude hab ich auch noch gleich das ganze mit dem springenden Ball im Fenster gemacht ... natuerlich alles ohne schnoerkel oder so ^^
ftp://ftp.uni-freiburg.de/incoming/delphi/ball.exe
Code:
unit Ball;
interface
uses
SysUtils, Forms, Classes, Controls, StdCtrls, Graphics;
type
TForm1 = class(TForm)
Timer1: TTimer;
procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private-Deklarationen }
x,y,dx,dy:integer;
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Timer1Timer(Sender: TObject);
var nx,ny:integer;
begin
nx:=x+dx; ny:=y+dy;
if nx<=50 then begin nx:=50; dx:=-dx; end;
if nx>=form1.ClientWidth-50 then begin nx:=form1.ClientWidth-50; dx:=-dx; end;
if ny<=50 then begin ny:=50; dy:=-dy; end;
if ny>=form1.ClientHeight -50 then begin ny:=form1.ClientHeight-50; dy:=-dy; end;
form1.Canvas.Pen.Color:=form1.Color;
form1.Canvas.Ellipse(x-50,y-50,x+50,y+50);
x:=nx; y:=ny;
form1.Canvas.Pen.Color:=clblack;
form1.Canvas.Ellipse(x-50,y-50,x+50,y+50);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
randomize;
x:=51; y:=51;
repeat
dx:=(1-random(3))*random(3);
dy:=(1-random(3))*random(3);
until (dx<>0) and (dy<>0);
end;
end.