Переключение на Главную Страницу Страницы: [1] 2 3 ... 6 ОтправитьПечать
Очень популярная тема (более 25 ответов) Артуру, до восстребования (число прочтений - 25871 )
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Артуру, до восстребования
21. Мая 2008 :: 08:36
Печать  
kms писал(а) 20. Мая 2008 :: 23:46:
Arta писал(а) 20. Мая 2008 :: 23:23:
Миш, есть ли какие рамки по времени определения свойств ЦветЛиний, ЦветФонаВыделения, ЦветФона, СтиляЗаголовков, Шрифта?
Сегодня обнаружил что в конструкторе наследника установка этих свойств (а может и других) не дает результата.

Я все проспал?

Ну да, не дает.

Контрола-то еще нет, есть только объект.
Контрол инициализируется при выполнения метода "СоздатьЭлементУправления", но после выполнения конструктора.
Вообще-то это неправильно, но это вопрос не к ТП, а к реализации ООП.

P.S.
Вопрос нормальный.
Плохо только, что в этих немеряных ветках уже ничего найти нельзя.
Давай будем новые открывать, что ли.

P.P.S.
Пиши в багзиллу, у меня были планы почти по этой части.
Хотя для начала, наверное - в раздел ООП, Артуру, до востребования. Улыбка


Тема для меня важная, так как ТП ведет себя не так ожидается.
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Артуру, до восстребования
Ответ #1 - 21. Мая 2008 :: 09:17
Печать  
Для начала все-таки лучше баг с линком на эту ветку Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Артуру, до восстребования
Ответ #2 - 21. Мая 2008 :: 10:18
Печать  
Артур, да я не отказываюсь зарегистрировать баг. Мне надо, чтобы мне открыли глаза сперва, как должно быть во взрослых языках. Т.е. данное поведение нормально или нет. И стоит ли заморачиваться на тему исправления данного поведения.
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Артуру, до восстребования
Ответ #3 - 21. Мая 2008 :: 13:10
Печать  
ИМХО нужно поправить создание подобных классов-наследников контролов аналогично тому, как уже реализовано в Фабрика::Новый Улыбка
т.е. использовать схему с
CComponentClass::SetFlagCreateWithoutConstructor(),
создание CComponentClass pCont;
CComponentClass::ClearFlagCreateWithoutConstructor(),
нужный код внутренней инициализации
CComponentClass::CallUserConstructor(pCont, "Конструктор")
т.е. ИМХО очень просто Улыбка - т.к. все уже придумано.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Артуру, до восстребования
Ответ #4 - 21. Мая 2008 :: 13:18
Печать  
Arta писал(а) 21. Мая 2008 :: 10:18:
Артур, да я не отказываюсь зарегистрировать баг. Мне надо, чтобы мне открыли глаза сперва, как должно быть во взрослых языках. Т.е. данное поведение нормально или нет. И стоит ли заморачиваться на тему исправления данного поведения.

Данное поведение ненормально, само собой Улыбка
Исправлять скорее всего нужно.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Артуру, до восстребования
Ответ #5 - 21. Мая 2008 :: 14:07
Печать  
artbear писал(а) 21. Мая 2008 :: 13:10:
т.е. ИМХО очень просто Улыбка - т.к. все уже придумано.

Предположим, мы создаем сложную иерархию.

Множественное и многоуровневое наследование.
В одной из веток наследования (в качестве базы) - создается ТП.

Получится использовать предложенную тобой схему?
  

De quelle planète es-tu?
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Артуру, до восстребования
Ответ #6 - 22. Мая 2008 :: 03:12
Печать  
Насколько я помню - ТП должно быть первым наследником, или я ошибаюсь?
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Артуру, до восстребования
Ответ #7 - 22. Мая 2008 :: 07:14
Печать  
artbear писал(а) 22. Мая 2008 :: 03:12:
Насколько я помню - ТП должно быть первым наследником, или я ошибаюсь?

Ну, само ТП, положим, наследовать ничему не будет.
Речь о том, что иерархия может быть сложной - многоуровневой, множественной.
Какой в этом случае будет порядок вызова конструкторов?
  

De quelle planète es-tu?
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Артуру, до восстребования
Ответ #8 - 22. Мая 2008 :: 07:22
Печать  
Во взрослых языках тоже куча нюансов.
например в Qt(С++) в иерархии наследования, если наследуешся от QObject он должен идти первым и не должен повторяться. Связано с тем, что перед компиляцией с модулем работает метапарсер.
  
Наверх
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Артуру, до восстребования
Ответ #9 - 22. Мая 2008 :: 08:34
Печать  
artbear писал(а) 22. Мая 2008 :: 03:12:
Насколько я помню - ТП должно быть первым наследником, или я ошибаюсь?

Читать как первой базой, конечно Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Артуру, до восстребования
Ответ #10 - 22. Мая 2008 :: 08:35
Печать  
kms писал(а) 22. Мая 2008 :: 07:14:
artbear писал(а) 22. Мая 2008 :: 03:12:
Насколько я помню - ТП должно быть первым наследником, или я ошибаюсь?

Ну, само ТП, положим, наследовать ничему не будет.
Речь о том, что иерархия может быть сложной - многоуровневой, множественной.
Какой в этом случае будет порядок вызова конструкторов?

Да, в этом случае пока нет решения, для Фабрика::Новый этот вопрос также остался открытым Печаль
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Артуру, до восстребования
Ответ #11 - 27. Мая 2008 :: 12:21
Печать  
Ну что будем решать?
Для простого варианта Наследник : ТП сделать просто.
Для остальных вариантов также просто можно сделать вот так:
во всех классах в иерархии ищем и вызываем конструктор с одинаковым именем типа "ИнитТП()" и описать подобное поведение в доке.
И дополнительно : для классов-наследников от ТП можно добавить фичу - при компиляции класса поиск этого метода, в случае отсутствия выдавать исключение или сообщение.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Артуру, до восстребования
Ответ #12 - 27. Мая 2008 :: 12:55
Печать  
В принципе для себя решил обычным способом:
в родителе сделал метод Иннициализация() где устанавливаю глобальные свойства ТП, из него вызываю Сам().Инит() потомков, в которых прописаны специфические для конкретного ТП параметры.

Про сабж ничего сказать не могу, действительно вопрос спорный...
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Артуру, до восстребования
Ответ #13 - 27. Мая 2008 :: 13:00
Печать  
Вот я и говорю, что для ТП можно официально прописать имя спец.конструктора или передавать его в метод создания ТП - Форма.Установить...
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Артуру, до восстребования
Ответ #14 - 27. Мая 2008 :: 13:50
Печать  
artbear писал(а) 27. Мая 2008 :: 13:00:
Вот я и говорю, что для ТП можно официально прописать имя спец.конструктора или передавать его в метод создания ТП - Форма.Установить...

Не нравится.
Я бы не стал делать, оставил бы как есть.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 3 ... 6
ОтправитьПечать