Поиск сообщества
Показаны результаты для тегов 'TObjectList'.
Найдено: 4 результата
-
Добрый день Столкнулся с такой задачей: Существует несколько TObjectList<TRectangle>. При создании каждого из них AOwnsObjects задано как True. RectList[i]:=TObjectList<TRectangle>.Create(True); ............ Nrect:=TRectangle.Create(nil); Nrect.Parent:=Form1; RectList[i].Add(Nrect); Существует ли способ определить, к какому из TObjectList принадлежит элемент?
-
Всем привет. Чиатю книгу Осипова по 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. Подскажите пожалуйста как так.
-
Извиняюсь за псевдокод. Есть класс (A), у него есть несколько дочерних(B1.B2...) Создаю лист объектов TList<A>, в него добавляю объекты классов B1, B2... Есть третий класс С, который имеет перегруженный метод для всех дочерних классов (A). procedure p(obj: B1); procedure p(obj B2); Но объект в классе С всегда воспринимается как объект класса А. Как я могу решить проблему?
-
Есть класс: class TMyObjectInt : public TObject { private: int Value; public: __fastcall TMyObjectInt (int _Value); __fastcall ~TMyObjectInt(); }; Есть ComboBox: for (int i = 1; i <= 10; i++) cbxItems->Items->AddObject(IntToStr(i), new TMyObjectInt(i)); Почему при вызове ->Clear() не вызываются деструкторы для TObject'ов? Казалось бы базовый TObject замечательно для этого подходит, даже деструктор у него виртуальным объявлен. Я могу написать свою функцию очистки, но это потенциально приводит к ошибкам, особенно если я отдаю указатель на ComboBox за пределы своей формы. Кстати, так же ведут себя и многие другие контролы, да и в VCL было так же.