|
15.09.2010, 12:38 | #1 |
Участник
|
Цитата:
PS. Сперва очень долго не мог понять, при чем тут вообще SysSetupForm - мне и в голову не могло прийти совать в него код, специфичный для особенностей дизайна какой-то одной конкретной формы. Последний раз редактировалось gl00mie; 15.09.2010 в 12:42. |
|
15.09.2010, 13:42 | #2 |
Роман Долгополов (RDOL)
|
Цитата:
Сообщение от gl00mie
А откуда взялось мнение, что всё вышеописанное реализуется в SysSetupForm? Там реализована только кнопка увеличения точности отображения, которая может быть применена к любой форме. Если же мне нужно переделать свойства пары контролов на форме, и я не хочу их для этого выдергивать из "автогруппы", то я просто дописываю метод на самой этой форме либо в классе управления этой формой, который при ее инициализации с помощью итератора меняет эти свойства.
Но пара контролов на форме это пушкой по воробьям. Чем element.design().controlName() то не угодил? Вроде прекрасно достает контролы из автогрупп. Или уже не достает и я отстал от жизни? |
|
|
За это сообщение автора поблагодарили: mazzy (2). |
16.09.2010, 09:37 | #3 |
Участник
|
Цитата:
Реализуется метод в форме. Но вызов то идет из SysSetupForm. Это и есть friend. Т.е. либо метод надо делать публичным, либо френдить SysSetupForm. Поэтому SysSetupForm получается френдом для очень многих форм (другими словами, SysSetupForm слишком много знает о деталях реализации других форм), что приводит к снижению инкапсюляции. (пусть в Аксапте нет ключевого слова friend. но смысл то и проблемы не меняются) Цитата:
Если определяется класс, который не реализует математических объектов вроде матриц или комплексных чисел и не является типом низкого уровня наподобие связанного списка, то:
[а] Не используйте глобальных данных. [b] Не используйте глобальных функций (не членов). [c] Не используйте общих данных-членов. [d] Не используйте функции friend (но только для того, чтобы избежать [а], [b] или [c]). [e] Не обращайтесь к данным-членам другого объекта непосредственно. [f] Не заводите в классе "поле типа"; используйте виртуальные функции. [g] Используйте функции-подстановки только как средство значительной оптимизации. ... Отметим, что общие базовые классы и друзья (friend) являются частью общего интерфейса класса (см. $$5.4.1 и $$12.4). Последний раз редактировалось mazzy; 16.09.2010 в 10:04. Причина: добавил цитаты из Страуструпа |
|
16.09.2010, 14:39 | #4 |
Роман Долгополов (RDOL)
|
Да нет там никаких таких вызовов (Функционал "расширения сознания" не в счет - он на своем месте). Все остальные специфичные для отдельных форм вещи реализуются прямо на этих отдельных формах
|
|
|
За это сообщение автора поблагодарили: tricky (1). |
Теги |
design, form, formreferencegroupcontrol, дизайн, законченный пример, итератор, округление, полезное, форма |
|
|