Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 12.12.2011, 14:12
nixel nixel вне форума
Начинающий
 
Регистрация: 12.12.2011
Адрес: Москва
Сообщения: 150
Версия Delphi: XE2-U4
Репутация: 131
По умолчанию Создание класса

Добрый день, уважаемые участники.

В уже готовом небольшом проекте создается вот такой класс:
PHP код:
TMasField = class
  
mas: array[1..81..8of byte;
  
FieldOwner: array[1..81..8of byte;
  
CritMass: array[1..81..8of byte;
  
Explosion: array[1..81..8of boolean;
end
c экземпляром класса, допустим, Field.
Понятное дело, что это выглядит порнографией.
Хотелось бы узнать, как надо объявлять класс, чтобы к нему можно было обращаться не так:
Field.Exlposion[1,1] := ....
а так:
Field[1,1].Explosion := ....

Тем более, что это как-то реализовано во всяких TList и прочих =)

Последний раз редактировалось nixel, 12.12.2011 в 14:17.
Ответить с цитированием
  #2  
Старый 12.12.2011, 14:44
Pyro Pyro вне форума
Так проходящий
 
Регистрация: 18.07.2011
Сообщения: 805
Версия Delphi: 7Lite
Репутация: 6063
По умолчанию

http://www.delphisources.ru/pages/fa...fault.php.html
только так вроде

а зачем вобще оно??
Ответить с цитированием
  #3  
Старый 12.12.2011, 14:54
nixel nixel вне форума
Начинающий
 
Регистрация: 12.12.2011
Адрес: Москва
Сообщения: 150
Версия Delphi: XE2-U4
Репутация: 131
По умолчанию

Цитата:
Сообщение от Pyro
http://www.delphisources.ru/pages/fa...fault.php.html
только так вроде

а зачем вобще оно??
ммм... это немного не то.
В примере указан способ замены имен самих свойств на индексы.
А мне нужно что-то вроде, эээ... назовем это массивом, у каждого элемента которого есть перечисленные свойства (и, возможно в будущем, методы).
Ответить с цитированием
  #4  
Старый 12.12.2011, 15:47
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

ну так и объяви массив записей
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #5  
Старый 12.12.2011, 17:02
Pyro Pyro вне форума
Так проходящий
 
Регистрация: 18.07.2011
Сообщения: 805
Версия Delphi: 7Lite
Репутация: 6063
По умолчанию

там ещё пример, чтобы объект работал как массив
PHP код:
myRect := TRectangle.Create;
ShowMessage(...myRect[2]...); 
Ответить с цитированием
  #6  
Старый 12.12.2011, 17:42
nixel nixel вне форума
Начинающий
 
Регистрация: 12.12.2011
Адрес: Москва
Сообщения: 150
Версия Delphi: XE2-U4
Репутация: 131
По умолчанию

Цитата:
Сообщение от NumLock
ну так и объяви массив записей
если в будущем мне понадобиться на этот "массив" писать свои методы, как быть? =)

Pyro,
там элементом массива является свойство. А мне свойства-то как раз нужны.

В целом, на данный момент вариант NumLock как раз решает эту задачу. Просто реально беспокоит, как потом выкручиваться при необходимости добавлять свои методы в класс =(

Последний раз редактировалось nixel, 12.12.2011 в 17:58.
Ответить с цитированием
  #7  
Старый 12.12.2011, 18:09
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,096
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

В общем, обычно такая задача решается с помощью 2х классов.
Первый клас - описание Item'а, без всяких массивов и т.п.
Второй класс - описание списка/массива, где свойство итемов объявлено свойством по умаолчанию.

Не уверен, что там можно ввести 2 индекса, но это уже можно просто проверить. Ну и таки да, стоит просто посмотреть в исходники библиотеки, что бы увидеть как это делается для того-же TStringList.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 13:57.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025