Показать сообщение отдельно
  #6  
Старый 29.06.2010, 09:54
Black Raider Black Raider вне форума
Местный
 
Регистрация: 31.05.2010
Адрес: Москва
Сообщения: 466
Версия Delphi: 7
Репутация: 40
По умолчанию

Вообщем открываем новый проект.
кидаем на форму 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;

На основе этого думаю сможете сделать и остальное
Ответить с цитированием