Всем привет. Чиатю книгу Осипова по Delphi. В книге есть один пример создания простой игры, вроде бы в нем все понятно кроме одного момента.
По задумке один таймер должен создавать шарики и присваивать им случайные координаты. Второй таймер должен опускать шарики вниз.
С первым все просто и понятно понятно:
procedure TForm1.Timer1Timer(Sender: TObject);
Var
Circle:Tcircle;
begin
Randomize;
Circle:=TCircle.Create(nil);
List.Add(circle);
Circle.Parent:=Form1;
Circle.Position.Y:=0;
Circle.Position.X:=Random(Round(Form1.Width-Circle.Width));
end;
А вот со вторым какие-то чудеса:
procedure TForm1.Timer2Timer(Sender: TObject);
var
i: integer;
begin
For i:=0 to List.Count-1 do
with List.Items do
begin
Position.Y:=Position.Y+0.5;
Я не могу понять почему при перемещении шариков вниз мы пишем просто Position.Y:=Position.Y+0.5;
Как компилятор понимает что это Position.Y именно шарика, а не формы допустим или квадрата?
Я привык обращаться к свойству Position так Rectengle1.Position.Y.
Подскажите пожалуйста как так.