Показать сообщение отдельно
Старый 04.12.2007, 16:43   #4
Trilliput
Знающий
 
Регистрация: 27.07.2006
Сообщений: 250
Написано 6 полезных сообщений
(для 7 пользователей)
В том то и дело что просто для того что бы получить обрабатывемый элемент мне нужно пердать его методу Update(), но для этого мне придется дописывать все Update() - а мне это наф ненадо.
Есть ф-ия которая обрабатывает все списки:
Function UpdateEntities( list:TList )
For Local entity:TEntity=EachIn list
entity.Update
Next
End Function
Есть класс TEntity c абстрактным методом Update(), у него есть потомок класс TBuilding в котором и расписан метод Update().
Во время выполнения ф-ии UpdateEntities(list:TList) выполняется метод Update() класса TBuilding. Те из самого метода TBuilding.Update() я немогу узнать какой объект из списка выполняется.

В этом то и вся проблема, нехотелось бы в TBuilding.Update() делать еще один перебор For .. Next по списку объектов TBuilding.

Все это нужно для организации "выбора объекта" на который кликнули. У класса Tbuilding есть поле IsSelected. В методе Update() происходит проверка: Если кликнули на объекте, то IsSelected = true. А теперь надо сделать все IsSelected = false у других объектов. Делать для этого еще один перебор кокраз нехочеться. Идея была в том, что бы занести выбраный объект в поле "Global SelectedBuilding" и проверить если "текущий объект" <> "SelectedBuilding", то Selected = false.

При создании экземпляра класса используется:
Local Building:TBuilding=New TBuilding

Если занести Building при этом, например, в поле Obj этого же экземпляра класса будет ли он указывать именно на себя?
По логике: когда заносим созданый экземпляр класса в TList(например List.AddLast(Building), потом при переборе и изменении TList всеравно идет указание на созданый объект, НО вот будут ли те ссылки в TList и в поле класса Obj одинаковыми, что бы можно было использовать a=b?
(Offline)
 
Ответить с цитированием