Dennis-X
04.09.2002, 18:39
Hi
Also, ahbe eben ein Programm geschrieben, das Bälle simulieren soll.
Leider zeichnet er die noch nicht mal...Kann mir wer sagen warum?
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, QuickRpt, QRCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Image1: TImage;
Timer1: TTimer;
procedure FormCreate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
type
TBall = class
x,y,vx,vy,r: integer;
procedure Init(xn,yn,vxn,vyn,rn: integer);
procedure zeigen;
procedure bewegen;
end;
var
Form1: TForm1;
ball1,ball2,ball3 : TBall;
implementation
{$R *.dfm}
procedure tBall.Init(xn,yn,vxn,vyn,rn: integer);
begin
x := xn;
y := yn;
vx := vxn;
vy := vyn;
r := rn;
end;
procedure tBall.zeigen;
begin
Form1.Image1.Canvas.Ellipse(x-r,x+r,y-r,x+r);
end;
procedure tBall.bewegen;
begin
if x > Form1.Image1.Width-r then vx := -vx;
if x < 0+r then vx := -vx;
if y > Form1.Image1.Height-r then vy := -vy;
if y < 0+r then vy := -vy;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Form1.Image1.Canvas.Pen.Mode := pmNOTXOR;
Form1.Image1.Canvas.Brush.Style := bsSolid;
image1.Canvas.Brush.Color := clred;
image1.Canvas.pen.Color := clblack;
DoubleBuffered := true;
Ball1.Init(random(Form1.Image1.Width),random(Form1.Image1.Height),5,5,5);
Ball1.zeigen;
Ball2.Init(random(Form1.Image1.Width),random(Form1.Image1.Height),10,5,5);
Ball2.zeigen;
Ball3.Init(random(Form1.Image1.Width),random(Form1.Image1.Height),5,10,5);
Ball3.zeigen;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Ball1.zeigen;Ball2.zeigen;Ball3.zeigen;
Ball1.bewegen;Ball2.bewegen;Ball3.bewegen;
Ball1.zeigen;Ball2.zeigen;Ball3.zeigen;
end;
initialization
randomize;
Ball1 := tBall.Create;
Ball2 := tBall.Create;
Ball3 := tBall.Create;
finalization
ball1.Destroy;
ball2.Destroy;
ball3.Destroy;
end.
THX 4 HLP
mfg
Also, ahbe eben ein Programm geschrieben, das Bälle simulieren soll.
Leider zeichnet er die noch nicht mal...Kann mir wer sagen warum?
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, QuickRpt, QRCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Image1: TImage;
Timer1: TTimer;
procedure FormCreate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
type
TBall = class
x,y,vx,vy,r: integer;
procedure Init(xn,yn,vxn,vyn,rn: integer);
procedure zeigen;
procedure bewegen;
end;
var
Form1: TForm1;
ball1,ball2,ball3 : TBall;
implementation
{$R *.dfm}
procedure tBall.Init(xn,yn,vxn,vyn,rn: integer);
begin
x := xn;
y := yn;
vx := vxn;
vy := vyn;
r := rn;
end;
procedure tBall.zeigen;
begin
Form1.Image1.Canvas.Ellipse(x-r,x+r,y-r,x+r);
end;
procedure tBall.bewegen;
begin
if x > Form1.Image1.Width-r then vx := -vx;
if x < 0+r then vx := -vx;
if y > Form1.Image1.Height-r then vy := -vy;
if y < 0+r then vy := -vy;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Form1.Image1.Canvas.Pen.Mode := pmNOTXOR;
Form1.Image1.Canvas.Brush.Style := bsSolid;
image1.Canvas.Brush.Color := clred;
image1.Canvas.pen.Color := clblack;
DoubleBuffered := true;
Ball1.Init(random(Form1.Image1.Width),random(Form1.Image1.Height),5,5,5);
Ball1.zeigen;
Ball2.Init(random(Form1.Image1.Width),random(Form1.Image1.Height),10,5,5);
Ball2.zeigen;
Ball3.Init(random(Form1.Image1.Width),random(Form1.Image1.Height),5,10,5);
Ball3.zeigen;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Ball1.zeigen;Ball2.zeigen;Ball3.zeigen;
Ball1.bewegen;Ball2.bewegen;Ball3.bewegen;
Ball1.zeigen;Ball2.zeigen;Ball3.zeigen;
end;
initialization
randomize;
Ball1 := tBall.Create;
Ball2 := tBall.Create;
Ball3 := tBall.Create;
finalization
ball1.Destroy;
ball2.Destroy;
ball3.Destroy;
end.
THX 4 HLP
mfg