Переключение на Главную Страницу Страницы: 1 [2] 3 4  ОтправитьПечать
Очень популярная тема (более 25 ответов) СоздатьЭлементУправления и класс-наследник (число прочтений - 20351 )
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: СоздатьЭлементУправления и класс-наследник
Ответ #15 - 07. Июня 2007 :: 12:13
Печать  
Chieftain писал(а) 07. Июня 2007 :: 11:49:
Создается на 2-х реквизитах ТП, а АктивИкс - нет
на ДВУХ ?
методом СоздатьЭлементУправления() ?
Озадачен
показывай свои карты?
  

1&&2&&3
Наверх
 
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: СоздатьЭлементУправления и класс-наследник
Ответ #16 - 07. Июня 2007 :: 12:23
Печать  
trad писал(а) 07. Июня 2007 :: 12:13:
Chieftain писал(а) 07. Июня 2007 :: 11:49:
Создается на 2-х реквизитах ТП, а АктивИкс - нет
на ДВУХ ?
методом СоздатьЭлементУправления() ?
Озадачен
показывай свои карты?



Попробуй
  

1_005.rar ( 13 KB | Загрузки )
Наверх
ICQ  
IP записан
 
DmitrO
1c++ power user
Отсутствует


ex developer

Сообщений: 579
Местоположение: г. Киров
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: СоздатьЭлементУправления и класс-наследник
Ответ #17 - 07. Июня 2007 :: 12:31
Печать  
Chieftain писал(а) 07. Июня 2007 :: 11:49:
DmitrO писал(а) 07. Июня 2007 :: 11:28:
Метод СоздатьЭлементУправления предназначен для создания ОДНОГО элемента управления и два или более он создавать не может.


Может! И создает!

При таком варианте
Код
Выбрать все
класс ТестКласс=ТестКласс.ert : ТабличноеПоле,АктивИкс
{
};
 


Создается на 2-х реквизитах ТП, а АктивИкс - нет

Очень довольный Ясен пень, если его два раза вызвать, передавая разные имена реквизитов формы, создадутся два контрола.
  
Наверх
ICQ  
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: СоздатьЭлементУправления и класс-наследник
Ответ #18 - 07. Июня 2007 :: 12:33
Печать  
DmitrO писал(а) 07. Июня 2007 :: 12:31:
Chieftain писал(а) 07. Июня 2007 :: 11:49:
DmitrO писал(а) 07. Июня 2007 :: 11:28:
Метод СоздатьЭлементУправления предназначен для создания ОДНОГО элемента управления и два или более он создавать не может.


Может! И создает!

При таком варианте
Код
Выбрать все
класс ТестКласс=ТестКласс.ert : ТабличноеПоле,АктивИкс
{
};
 


Создается на 2-х реквизитах ТП, а АктивИкс - нет

Очень довольный Ясен пень, если его два раза вызвать, передавая разные имена реквизитов формы, создадутся два контрола.


А я об этом и говорил....
Тока во втором случае я хотел панель создать, а он создает ТП
  
Наверх
ICQ  
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: СоздатьЭлементУправления и класс-наследник
Ответ #19 - 07. Июня 2007 :: 12:33
Печать  
Улыбка понятно
ведь не одним же вызовом СоздатьЭлементУправления, а двумя

ну и напиши

в ТестКласс1.ert:
изита);

в ТестКласс2.ert:
ТаблПоле = изита);
  

1&&2&&3
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: СоздатьЭлементУправления и класс-наследник
Ответ #20 - 07. Июня 2007 :: 12:38
Печать  
но полиморфную обработку событий получим только в классы ТестКласс1 и ТестКласс2 соответственно, но никак не в ТестКласс
  

1&&2&&3
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: СоздатьЭлементУправления и класс-наследник
Ответ #21 - 07. Июня 2007 :: 12:44
Печать  
trad писал(а) 07. Июня 2007 :: 12:33:
Улыбка понятно
ведь не одним же вызовом СоздатьЭлементУправления, а двумя

ну и напиши

в ТестКласс1.ert:
изита);

в ТестКласс2.ert:
ТаблПоле = изита);

но не уверен что это сработает
т.к. Сам() хоть и вернеть ссылку на "вершину" т.е. на "ТестКласс", но ПолучитьБазовыйКласс("ТестКласс2") в самом "ТестКласс2" возможно не получиться. Я не проверял.

ps
если не получиться, то непосредственное создание придется переносить в "ТестКласс"
  

1&&2&&3
Наверх
 
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: СоздатьЭлементУправления и класс-наследник
Ответ #22 - 07. Июня 2007 :: 12:44
Печать  
trad писал(а) 07. Июня 2007 :: 12:33:
Улыбка понятно
ведь не одним же вызовом СоздатьЭлементУправления, а двумя

ну и напиши

в ТестКласс1.ert:
изита);

в ТестКласс2.ert:
ТаблПоле = изита);


Тогда с созданием все прекрасно, но куда приходят события - не пойму
  
Наверх
ICQ  
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: СоздатьЭлементУправления и класс-наследник
Ответ #23 - 07. Июня 2007 :: 12:47
Печать  
Chieftain писал(а) 07. Июня 2007 :: 12:44:
Тогда с созданием все прекрасно
проверил?

Chieftain писал(а) 07. Июня 2007 :: 12:44:
но куда приходят события - не пойму

trad писал(а) 07. Июня 2007 :: 12:38:
но полиморфную обработку событий получим только в классы ТестКласс1 и ТестКласс2 соответственно, но никак не в ТестКласс

И это не так страшно. Все интересующие тебя события ты можешь "виртуально" перенаправить в "ТестКласс"
  

1&&2&&3
Наверх
 
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: СоздатьЭлементУправления и класс-наследник
Ответ #24 - 07. Июня 2007 :: 12:51
Печать  
События не приходят классы "ТестКласс1" и "ТестКласс2".
Не приходят в "ТестКласс"
Не приходят в форму, откуда создавался "ТестКласс"

07. Июня 2007 :: 13:03
Вот вариант с "ПолучитьБазовыйКласс"
  

9.rar ( 7 KB | Загрузки )
Наверх
ICQ  
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: СоздатьЭлементУправления и класс-наследник
Ответ #25 - 07. Июня 2007 :: 13:24
Печать  
Chieftain писал(а) 07. Июня 2007 :: 12:51:
События не приходят классы "ТестКласс1" и "ТестКласс2".
у меня проходят. Нужно написать Экспорт

Chieftain писал(а) 07. Июня 2007 :: 12:51:
Не приходят в "ТестКласс"
и не должны

Chieftain писал(а) 07. Июня 2007 :: 12:51:
Не приходят в форму, откуда создавался "ТестКласс"
у меня проходят. Незабывай префикс имени процедуры
  

1&&2&&3
Наверх
 
IP записан
 
sedmin
1c++ developer
Отсутствует


I Hate Fat YaBB 2!

Сообщений: 862
Зарегистрирован: 24. Мая 2006
Re: СоздатьЭлементУправления и класс-наследник
Ответ #26 - 07. Июня 2007 :: 13:35
Печать  
desty писал(а) 07. Июня 2007 :: 12:01:
Я тут у КИНТа подсмотрел...

Не надо стесняться приводить ссылки на источники Улыбка :

www.kint.ru
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: СоздатьЭлементУправления и класс-наследник
Ответ #27 - 07. Июня 2007 :: 14:37
Печать  
Chieftain писал(а) 07. Июня 2007 :: 12:06:
Вообще-то у меня сейчас готовый вариант:
Основной класс, из которого создаются 2 объекта (ТП и АктивИкс).
Он же вызывет их методы и меняет свойства.
Но каждый из "подчиненных" классов должен видеть действия другого.
А приходится делать вспомогательные методы для передачи события.

ЗЫ А хотелось как проще... Как всегда придется выдумывать...

Понимаешь, фактически ты используешь неявное поведение. А это, как правило, отзовется в будущем и не лучшим способом Печаль Например, если ты захочешь в дальнейшем что-то поменять или добавить, это будет довольно сложно сделать.

Сделай класс-менеджер, тем более, что он у тебя уже есть фактически, и два класса - один наследуется от ТП, другой от АктивИкс.
Получится нормальная, красивая схема, которую легко можно будет поменять в будущем Улыбка
  

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


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: СоздатьЭлементУправления и класс-наследник
Ответ #28 - 08. Июня 2007 :: 05:18
Печать  
artbear писал(а) 07. Июня 2007 :: 14:37:
Chieftain писал(а) 07. Июня 2007 :: 12:06:
Вообще-то у меня сейчас готовый вариант:
Основной класс, из которого создаются 2 объекта (ТП и АктивИкс).
Он же вызывет их методы и меняет свойства.
Но каждый из "подчиненных" классов должен видеть действия другого.
А приходится делать вспомогательные методы для передачи события.

ЗЫ А хотелось как проще... Как всегда придется выдумывать...

Понимаешь, фактически ты используешь неявное поведение. А это, как правило, отзовется в будущем и не лучшим способом Печаль Например, если ты захочешь в дальнейшем что-то поменять или добавить, это будет довольно сложно сделать.

Сделай класс-менеджер, тем более, что он у тебя уже есть фактически, и два класса - один наследуется от ТП, другой от АктивИкс.
Получится нормальная, красивая схема, которую легко можно будет поменять в будущем Улыбка


Решил делать немного по-другому.
1. Основной класс - ТП.
2. Второй класс - "Панель"
3. Панель создается из ТП. Объявляется экспортным, т.е. доступ к нему извне через ТП.Панель. Наличие событий от панели в ТП проверяю через "Информатор" и вызываю.
4. Доступ к свойствам - через контекст ТП. Названия нужных - точно определенное.
5. ...
  
Наверх
ICQ  
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: СоздатьЭлементУправления и класс-наследник
Ответ #29 - 08. Июня 2007 :: 06:21
Печать  
А почему отказался от первоначального пути?
Все же красиво. И работает.
  

1&&2&&3
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 [2] 3 4 
ОтправитьПечать