Показать сообщение отдельно
  #1  
Старый 19.05.2013, 17:44
Ruz Ruz вне форума
Прохожий
 
Регистрация: 01.05.2013
Сообщения: 14
Версия Delphi: Delphi 7
Репутация: 10
Вопрос Вместо TShape, двигается Form1

У меня есть 2 функции и 2 таймера.

В первом таймере каждые 10 секунд вызывается 1 функция, которая создает TShape, с определенными параметрами:
Код:
function TForm1.ShapeCreating(id:integer; color:Tcolor):boolean;
var shape:TShape;
begin
shape:=TShape.Create(Form1);
shape.Parent:=Form1;
shape.Brush.color:=color;
shape.width:=random(300)+50;
shape.height:=random(300)+50;
shape.Left:=random(Form1.Width-shape.Width)+1;
shape.top:=1;
shape.tag:=id;
result:=true;
end;

Тем временем вторая функция по таймеру двигает этот Shape, пока не создастся новый.
Код:
function TForm1.ShapeGo(id:integer): boolean;
var Shape:TShape;
begin
  Shape.Tag:=id;
  shape.top:=shape.Top+shapespeed;
end;

idt изначально равна нулю и меняется во втором таймере:
Код:
procedure TForm1.CreatingTimerTimer(Sender: TObject);
begin
idt:=idt+1;
ShapeCreating(idt,clred);
end;

А вот 1 таймер:
Код:
procedure TForm1.GameTimerTimer(Sender: TObject);
var shape:tshape;
begin
 ShapeGo(idt);
 if shape.top>=Form1.height then shape.Destroy;
end;

Но моя задумка не работает: Создается Shape, но вместо того, чтобы его двигать, моя функция двигает форму. Помогите пожалуйста
Ответить с цитированием