![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| CROTishka |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 192 Регистрация: 30.7.2009 Репутация: 1 Всего: 2 |
просветите пожалуйста, теперь что, все проперти родителя автоматом пробрасываются в потомка?
раньше же вроде надо было их явно прописывать в виде
Как отрубить у потомка эти свойства? (чтобы в проперти эдиторе не отображались, и в менять/видеть нельзя было). спасибо. Это сообщение отредактировал(а) CROTishka - 25.11.2010, 15:32 |
|||
|
||||
| cat512 |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 438 Регистрация: 20.3.2007 Репутация: 7 Всего: 15 |
Что значит автоматом пробрасываются в потомках? В ООП существует концепция наследования объектов, которая строго определяет контент класса-предка в наследниках, т.е. если у предка имелось какое либо свойство, то оно должно быть и в классе наследнике. (вопрос с доступом переносим в другую плоскость) Скрыть свойство можно перенеся его в нужную секцию (protected, private). Соответственно скрывать нужно у предка, что-бы оно было не доступно в наследнике. Скрыть только для инспектора объектов, достатосно перенести свойство в секцию public Это сообщение отредактировал(а) cat512 - 25.11.2010, 15:24 |
||||
|
|||||
| CROTishka |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 192 Регистрация: 30.7.2009 Репутация: 1 Всего: 2 |
Я не то имел в виду. Я имел в виду что раньше если не прописать проперти в паблишед, то они не были видны в проперти эдиторе.
|
|||
|
||||
| cat512 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 438 Регистрация: 20.3.2007 Репутация: 7 Всего: 15 |
А сейчас подругому? Я просто работаю под 6-7, возможно в новых версиях уже чего-то накрутили
|
|||
|
||||
| CROTishka |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 192 Регистрация: 30.7.2009 Репутация: 1 Всего: 2 |
Да, сейчас в 2010 проперти видны все, в независимости от визибилити и указаны ли они явно.
|
|||
|
||||
| БелАмор |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 10.6.2010 Где: Россия Репутация: 5 Всего: 17 |
На основании чего сделан такой вывод? Вы явно что-то путаете. Я не имел дела с Delphi выше 2006, но не думаю, что там что-то принципиально изменилось. Так что давайте разбираться. Начнём с самого начала. private - видимость только в этом классе, в наследниках недоступно. protected - видимость в этом классе и всех потомках. public - доступно всем published - доступно всем, сохраняется в dfm, выводится в инспектор объектов. Если спецификатор видимости не указан - это published Обычно в базовом классе свойства объявляются как protected. При этом они объявляются с read/write методами. В потомках свойства, которым нужно повысить видимость, указываются в секции public или published без указания методов чтения/записи. Это трактуется как изменение видимости ранее объявленного свойства. Понижать видимость не принято. Некоторые свойства изначально могут объявляться как published, тогда в наследниках нет необходимости увеличивать их видимость Пример:
Посмотрите конкретно эти свойства в своей Delphi 2010. Вряд ли там что-то должно сильно измениться конкретно с Caption и MDIChildCount. Если у вас в инспекторе объектов отображаются какие-то свойства, которые отображаться не должны, приведите конкретный пример. |
||||
|
|||||
| CROTishka |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 192 Регистрация: 30.7.2009 Репутация: 1 Всего: 2 |
Спасибо большое, я понял в чём соль.
И всё-таки, их можно как-то скрыть, после того уже, как они объявлены с видимостью паблишед? Это сообщение отредактировал(а) CROTishka - 26.11.2010, 11:58 |
|||
|
||||
| БелАмор |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 10.6.2010 Где: Россия Репутация: 5 Всего: 17 |
При попытке понизить в потомках видимость чего-либо, в действие вступают достаточно неочевидные механизмы. Поэтому, даже если это и можно сделать, я бы советовал принять как асиому и неукоснительно выполнять правило: В наследниках видимость можно только повышать, и ни при каких обстоятельствах не следует пытаться её понижать. Что касается возможности не отображать в инспекторе объектов часть свойств, то я смутно припоминаю, что встречал упоминание о том, что в какой-то из последних версий Delphi вроде бы появилась возможность настройки видимости свойств в самом инспекторе объектов. Так ли это, и если так, то как реализуется и насколько это полезно - сказать не могу. |
|||
|
||||
| AnalogXP |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 46 Регистрация: 23.9.2007 Репутация: нет Всего: нет |
CROTishka, смотрите тут
|
|||
|
||||
| CROTishka |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 192 Регистрация: 30.7.2009 Репутация: 1 Всего: 2 |
я помнится пару лет назад долго тупил, когда увидел в коде изменение константы. как же удивятся люди когда увидят доступ к strict private.
интересная тема, но не совсем то. Это сообщение отредактировал(а) CROTishka - 3.12.2010, 17:13 |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |