Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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.065 c
2-1268752361
Lionelles
2010-03-16 18:12
2010.08.27
Вычисления в БД на Delphi


15-1268773367
Nic
2010-03-17 00:02
2010.08.27
НДС - непонятно немного


2-1273386583
Waleeera
2010-05-09 10:29
2010.08.27
Delphi


9-1185021098
AlexanderMS
2007-07-21 16:31
2010.08.27
Повторный вывод уже построенной сцены в OpenGL.


15-1268083801
Юрий
2010-03-09 00:30
2010.08.27
С днем рождения ! 9 марта 2010 вторник





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский