![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,899
|
![]()
Всем Доброго.
Есть потребность : объектов может быть много, но они все некоего базового типа (Tobjtype), которым инициализируются в конструкторе. Код:
и вынуждает меня использовать Код:
В то же время если сделать обжтайп рекордом – без вопросов всё работает (ну компилит, в рантайме бы ещё надо проверить), но мне-то ессно надо класс. (объектом, устаревшим типом, не пробовал, но и не хочется) Менять область видимости - нет результата. Внимание, вопрос, если дельфи в принципе ожидает, что я могу задействовать там объект класса (см. текст ошибки, в хелпнике по данному тексту другое дело описано), то почему не даёт сделать... ? Гуглил, там всё нубо-ошибки, которые как раз кейсы описанные в хелпе.. Уверьте хоть меня, что я раб дельфей, и раз она велит не писать таких аксессоров, то и не рыпаться. Но хочется таки элегантности ![]() Ну, иль может кто вообще пнёт меня за построенное, и поделится мыслью по высокой архитектуре. (разве что про наследование не хотел бы слышать, ибо не нравится мне дублирование, да и пробовал, в данном проекте не пошло) Последний раз редактировалось phomm; 19.06.2012 в 19:28. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Ну а просто раба дельфей не устраивает
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#3 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,899
|
![]()
Хочется пропертю отдельную, почти для каждого поля из обжтипа, на этом основная цель обжтипа и зиждется.
Про раба имелось ввиду в контектсе текущей проблемы )) так то вроде я сильнее её ) |
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
![]()
когда много отднотипных пропертей, иногда я делаю типа такого:
Код:
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
![]() |
![]() |
![]() |
#5 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,899
|
![]()
Да, метод с индексами я знаю, но мне в данной задаче видится он малость костыльным.. нужен учет индексов..
Я думаю может вообще свойства все обернуть в списки, адресуемые енумами.. и уж написать геттер на енумах, но пока надеялся на сабж, просто может я чего не догоняю.. Прикол как раз в том, что дельфи сама говорит можно и сама же нельзя.. |
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
![]() Код:
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
![]() |
![]() |
![]() |
#7 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,899
|
![]()
Да, я подозревал, что объекты будут работать, рекорды же работают...
но объекты я конечно использовать не собираюсь... То что они убрали, это они молодцы, оперативно работают ) придётся придумывать что-то. либо мириться с вагонкой геттеров, а ведь теоретически могут и сеттеры потребоваться... На стековерфлоу прочитал несколько кейсов по проблемам рекордов как пропертей, там были кой-какие смежные идеи, может чего накропаю по ним. Мне кажется, что невозможность сего действа обусловлена именно размещением экземпляров классов в куче, в неизвестном на этапе компиляции адресном пространстве, посему компайлер, не знает как прописать обращение таким аксессором, а вот рекорды и объекты, они же получается физически вместе с self лежат, посему компайлер просто в смещение это преобразует... |
![]() |
![]() |
![]() |
#8 | |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
![]() Цитата:
Код:
по-сути, проще опубликовать внутренний объект и не заморачиваться.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
|
![]() |
![]() |
![]() |
#9 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,899
|
![]()
Ну да по идее, в реализации геттера он знает, хотя кто его знает )) может он строит вызовы через указатель на указатель, тем более там вмт, которая сама по себе сложная, а аксессор всё же простой переходничок обычно.
Ну а насчет перегружает синтаксис - с рекордами же "не перегружает", я ведь и в рекорде могу навертеть вложенную иерахию (кстати, надо бы проверить как получится )))) Вобщем, спасибо всем, темка, думаю, исчерпалась. Если я чего позже нарою , дак выложу, в этой или другой, коли закроют. А вот насчет исправили ошибку я малость не понял, хе2 не стоит, вживую не смогу лицезреть, но вот амбар-сайт говорит http://docwiki.embarcadero.com/RADSt...quired_(Delphi) может скрин найдётся, для удовлетворения любопытства моего, ибо качать и ставить как-то не резон ) Последний раз редактировалось phomm; 19.06.2012 в 23:40. |
![]() |
![]() |
![]() |
#10 | |
Software Developer
Старожил
Регистрация: 19.12.2008
Сообщений: 2,070
|
![]() Цитата:
Код:
Будь проще и люди к тебе потянутся
|
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
бъет ли ферзь, установленный в поле (k, l) поле (m, n). | Antua | Помощь студентам | 5 | 24.03.2012 12:03 |
Как из простого мемо записать в поле БД Access в поле тоже типа мемо с сохранением всех абзацев пробелов | Speeker | БД в Delphi | 2 | 28.11.2011 16:22 |
Уникальное поле и поле счетчик в IBexpert | Ist | Помощь студентам | 4 | 28.05.2011 09:14 |
Откомпилировать исходник использующий vcl50.bpl | Человек_Борща | Общие вопросы Delphi | 5 | 14.11.2010 21:55 |
После ввода в поле по Enter нужно перейти на другое поле! | •ScReam•™ | Помощь студентам | 2 | 16.06.2009 08:47 |