Вообщем открываем новый проект.
кидаем на форму image, 2 Label и кнопку.
жмем 2 раза на кнопку и в событие пишем:
Код:
procedure TForm1.BitBtn1Click(Sender: TObject);
var xr,yr:integer;
procedure DrawNLO(xn,yn:integer;fl:boolean);
var rt:TRect;
cl:Tcolor;
begin
//Заполняем класс Rect для очистки
rt.Left:=0;
rt.Right:=image1.Width;
rt.Top:=0;
rt.Bottom:=image1.Height;
//Запоминаем предыдущий цвет
cl:=image1.Canvas.Brush.Color;
//Устанавливаем цвет фона = цвету формы
image1.Canvas.Brush.Color:=form1.Color;
//Заливаем этим цветом. чтоб очистить
image1.Canvas.FillRect(rt);
//Если нужно менять цвет то генерим случайный цвет иначе устан. старый
if fl then image1.Canvas.Brush.Color:=random(65000)
else image1.Canvas.Brush.Color:=cl;
//Заполняем класс Rect для отрисовки
rt.Left:=xn;
rt.Top:=yn;
rt.Bottom:=yn+10;
rt.Right:=xn+20;
//Заливаем эту область
image1.Canvas.FillRect(rt);
//Выводим информацию о позиции
label1.Caption:='POS X-'+inttostr(xn);
label2.Caption:='POS Y-'+inttostr(yn);
end;
begin
xr:=random(50);
yr:=random(80);
if (yr mod 12)=0 then DrawNLO(xr,yr,true)
else DrawNLO(xr,yr,false);
end;
На основе этого думаю сможете сделать и остальное