unit stars; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls; type Tsky = class(TForm) star: TImage; flashtimer: TTimer; Image1: TImage; Image2: TImage; Image3: TImage; Image4: TImage; Image5: TImage; Image6: TImage; Image7: TImage; procedure flashtimerTimer(Sender: TObject); procedure bang(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var sky: Tsky; implementation {$R *.DFM} procedure Tsky.flashtimerTimer(Sender: TObject); {each tick, each star is randomly made visible/invisible and randomly placed somewhere on the form} var counter : byte; {for..to..do counter} x : TImage; {simple name for image that is found} begin for counter := 0 to (componentcount-1) do {cycle thru form components 0 .. n-1} if components[counter] is TImage then begin {we have found an image on the form} x:= (components[counter] as TImage); {non-clumsy name} x.visible := random(100) < 50; {randomly visible} x.top := random(clientheight - x.height)+1; {relocate vertical} x.left := random(clientwidth - x.width)+1 {relocate horizantal} end end; procedure Tsky.bang(Sender: TObject); {process that shuts the game down when you hit a visible star} begin close end; procedure Tsky.FormCreate(Sender: TObject); {necessary to seed random number generator} begin randomize end; end.