unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls,
Math;
type
{ TForm1 }
TForm1 = class(TForm)
Timer1: TTimer;
procedure FormCreate(Sender: TObject);
procedure FormPaint(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
const
starsCount = 200;
var
Form1: TForm1;
sx: array [0..starsCount] of integer;
sy: array [0..starsCount] of integer;
sz: array [0..starsCount] of integer;
implementation
{$R *.lfm}
procedure TForm1.FormCreate(Sender: TObject);
var
i : integer;
begin
for i := 0 to starsCount-1 do begin
sx[i] := Random(ClientWidth);
sy[i] := Random(ClientHeight);
sz[i] := RandomRange(1, 10);
end;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var
i: integer;
begin
for i := 0 to starsCount-1 do begin
sx[i] := sx[i] - sz[i];
if sx[i] < 0 then begin
sx[i] := ClientWidth;
sy[i] := Random(ClientHeight);
sz[i] := RandomRange(1, 10);
end;
end;
Refresh;
end;
procedure TForm1.FormPaint(Sender: TObject);
var
i: integer;
begin
for i := 0 to starsCount-1 do begin
Canvas.Pixels[ sx[i], sy[i] ] := clWhite;
end;
end;
end.