Форум: "Прочее";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
Вниз[ООП] Хочу странного Найти похожие ветки
← →
GrayFace © (2010-03-12 15:10) [80]oxffff © (11.03.10 8:40) [79]
Это всего лишь реализация VCL. К формальной теории отношения не имеет.
При чем тут реализация VCL? Это свойство языка, которое было бы полезным.
Речь была о
Классические пуристы возражают против наследников, например, от TList. Их аргументы таковы, что наследнику в большинстве случаев не нужны методы предка Exchange, Move, и т.д.
Нету в Delphi возможность понизить область видимости - ну такой язык.
С этим данное "частичное" понижение видимости отлично бы справилось.
← →
oxffff © (2010-03-12 17:18) [81]
> GrayFace © (12.03.10 15:10) [80]
> oxffff © (11.03.10 8:40) [79]
> Это всего лишь реализация VCL. К формальной теории отношения
> не имеет.
>
> При чем тут реализация VCL? Это свойство языка, которое
> было бы полезным.
Мой ответ связан с твоим тротестом против опубликования свойств в Custom. Причем здесь свойство языка и опубликование свойств?
> Речь была о
> Классические пуристы возражают против наследников, например,
> от TList. Их аргументы таковы, что наследнику в большинстве
> случаев не нужны методы предка Exchange, Move, и т.д.
>
> Нету в Delphi возможность понизить область видимости - ну
> такой язык.
>
> С этим данное "частичное" понижение видимости отлично бы
> справилось.
А почему бы с этим не справится в рамках стандартной модели?
Объект делегатор с агрегатом внутри чем не устраивает?
← →
GrayFace © (2010-03-12 21:09) [82]Я не против опубликования свойств в Custom. Я говорил о том, что это сейчас единственный нормальный вариант не тащить в свой компонент лишние и вредные свойства. Но это очень неудобный вариант, приводящий к тому, что приходится следить за версиями VCL и добавлять новые свойства, появившиеся в VCL, в компонент.
oxffff © (12.03.10 17:18) [81]
А почему бы с этим не справится в рамках стандартной модели?
Объект делегатор с агрегатом внутри чем не устраивает?
<Посмотрев TList> Всем устраивает.
← →
oxffff © (2010-03-12 23:08) [83]
> GrayFace © (12.03.10 21:09) [82]
> Я не против опубликования свойств в Custom. Я говорил о
> том, что это сейчас единственный нормальный вариант не тащить
> в свой компонент лишние и вредные свойства. Но это очень
> неудобный вариант, приводящий к тому, что приходится следить
> за версиями VCL и добавлять новые свойства, появившиеся
> в VCL, в компонент.
Какое отношение VCL имеет к языку Delphi?
> <Посмотрев TList> Всем устраивает.
Не понял.
← →
GrayFace © (2010-03-13 20:32) [84]oxffff © (12.03.10 23:08) [83]
Какое отношение VCL имеет к языку Delphi?
Прямое. Достаточно того, что он написан на Delphi. В VCL активно используются published и наследование. При совмещении этих 2 вещей проблема прятанья published свойств неизбежно встает. Тебе не нравится, что проблема иллюстрируется на конкретной библиотеке?
oxffff © (12.03.10 23:08) [83]
Не понял.
Объект делегатор с агрегатом внутри Всем устраивает.
← →
oxffff © (2010-03-13 23:19) [85]
> GrayFace © (13.03.10 20:32) [84]
> oxffff © (12.03.10 23:08) [83]
> Какое отношение VCL имеет к языку Delphi?
> Прямое. Достаточно того, что он написан на Delphi. В VCL
> активно используются published и наследование. При совмещении
> этих 2 вещей проблема прятанья published свойств неизбежно
> встает. Тебе не нравится, что проблема иллюстрируется на
> конкретной библиотеке?
Считаю язык - это язык. А VCL - это один из возможных результатов применения инструмента(языка).
Поясни где проблема по твоему мнению при совмещении наследования и published в VCL.
← →
oxffff © (2010-03-13 23:26) [86]
> GrayFace © (13.03.10 20:32) [84]
Для сериализации в VCL есть еще TPersistent.DefineProperties и использование RTTI в виде published. Достаточно продуманно.
← →
GrayFace © (2010-03-19 14:23) [87]oxffff © (13.03.10 23:19) [85]
Поясни где проблема по твоему мнению при совмещении наследования и published в VCL.
У меня был ListView, в котором мне надо было спрятать свойства LargeImages, SmallImages и еще несколько. Важно, чтобы они не показывались в редакторе свойств. Этот компонент, к тому же, наследовался от другого моего компонента. Чтобы это сделать, надо либо создавать TCustom варианты, а при наследовании от них расшаривать все желательные свойства, но надо знать список этих свойств для каждой версии Дельфи - вся проблема в этом - в каждой версии добавляются новые, а мне надо только спрятать несколько старых свойств. Я ошибся в своем утверждении - проблема в совмещении 3 вещей - наследования, published и использования списка всех published свойств для показа кому-то.
oxffff © (13.03.10 23:26) [86]
Для сериализации в VCL есть еще TPersistent.DefineProperties и использование RTTI в виде published. Достаточно продуманно.
Да, интересно. Надо будет попробовать - может так получится спрятать.
← →
oxffff © (2010-03-19 14:41) [88]
> GrayFace © (19.03.10 14:23) [87]
> oxffff © (13.03.10 23:19) [85]
> Поясни где проблема по твоему мнению при совмещении наследования
> и published в VCL.
> У меня был ListView, в котором мне надо было спрятать свойства
> LargeImages, SmallImages и еще несколько. Важно, чтобы они
> не показывались в редакторе свойств. Этот компонент, к тому
> же, наследовался от другого моего компонента. Чтобы это
> сделать, надо либо создавать TCustom варианты, а при наследовании
> от них расшаривать все желательные свойства, но надо знать
> список этих свойств для каждой версии Дельфи - вся проблема
> в этом - в каждой версии добавляются новые, а мне надо только
> спрятать несколько старых свойств. Я ошибся в своем утверждении
> - проблема в совмещении 3 вещей - наследования, published
> и использования списка всех published свойств для показа
> кому-то.
1. Нужно наследоваться от самого закрытого и раскрывать все что-нужно.
2. Либо наследование от TControl и делегирование нужному контролу.
Полное делегирование с идентичным временем жизни=наследованию, хотя в большинстве случаев не бинарно совместимо.
3. Всегда есть возможность сделать run-time правки или перекрыть методы участвующие в сериализации.
← →
GrayFace © (2010-03-19 23:49) [89]oxffff © (19.03.10 14:41) [88]
1. Нужно наследоваться от самого закрытого и раскрывать все что-нужно.
Я и говорю - это надо от всех Дельфей иметь модули.
← →
GrayFace © (2010-03-20 00:03) [90]Чтобы написать
{$IFDEF D2006}
// список пропертей, в нем появившихся
{$ENDIF}
Страницы: 1 2 3 вся ветка
Форум: "Прочее";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
Память: 0.61 MB
Время: 0.063 c