![]() |
|
|
#1
|
|||
|
|||
![]() Добрый день, уважаемые участники.
В уже готовом небольшом проекте создается вот такой класс: PHP код:
Понятное дело, что это выглядит порнографией. Хотелось бы узнать, как надо объявлять класс, чтобы к нему можно было обращаться не так: Field.Exlposion[1,1] := .... а так: Field[1,1].Explosion := .... Тем более, что это как-то реализовано во всяких TList и прочих =) Последний раз редактировалось nixel, 12.12.2011 в 14:17. |
#2
|
|||
|
|||
![]() |
#3
|
|||
|
|||
![]() Цитата:
В примере указан способ замены имен самих свойств на индексы. А мне нужно что-то вроде, эээ... назовем это массивом, у каждого элемента которого есть перечисленные свойства (и, возможно в будущем, методы). |
#4
|
||||
|
||||
![]() ну так и объяви массив записей
Пишу программы за еду. __________________ |
#5
|
|||
|
|||
![]() там ещё пример, чтобы объект работал как массив
PHP код:
|
#6
|
|||
|
|||
![]() Цитата:
Pyro, там элементом массива является свойство. А мне свойства-то как раз нужны. В целом, на данный момент вариант NumLock как раз решает эту задачу. Просто реально беспокоит, как потом выкручиваться при необходимости добавлять свои методы в класс =( Последний раз редактировалось nixel, 12.12.2011 в 17:58. |
#7
|
|||
|
|||
![]() В общем, обычно такая задача решается с помощью 2х классов.
Первый клас - описание Item'а, без всяких массивов и т.п. Второй класс - описание списка/массива, где свойство итемов объявлено свойством по умаолчанию. Не уверен, что там можно ввести 2 индекса, но это уже можно просто проверить. Ну и таки да, стоит просто посмотреть в исходники библиотеки, что бы увидеть как это делается для того-же TStringList. |