Переключение на Главную Страницу Страницы: [1]  ОтправитьПечать
Очень популярная тема (более 25 ответов) Артуру, до восстребования (число прочтений - 25867 )
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 записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Артуру, до восстребования
Ответ #15 - 27. Мая 2008 :: 15:19
Печать  
ну давай тогда в таком случае не принимать параметров, пока не инициализируем окно контрола.
А то в конструкторе присваиваешь значения а без толку.
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Артуру, до восстребования
Ответ #16 - 27. Мая 2008 :: 16:22
Печать  
Скорее, надо просто еще чуток подумать.

Что нужно в данном случае?
Возможность

1. СоздатьОбъект() для CComponentClass - без вызова конструкторов вообще
2. Дополнительная инициализация необходимых контекстов-членов (допустим, окна контрола)
3. Вызов всех пользовательских конструкторов в нужном порядке

Возможно, вот эту идею http://www.1cpp.ru/forum/YaBB.pl?num=1211358967/3#3
надо довести до ума, чтобы CComponentClass умел выполнять п.1 и полностью п.3.
  

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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Артуру, до восстребования
Ответ #17 - 28. Мая 2008 :: 11:25
Печать  
kms писал(а) 27. Мая 2008 :: 16:22:
Скорее, надо просто еще чуток подумать.

Что нужно в данном случае?
Возможность

1. СоздатьОбъект() для CComponentClass - без вызова конструкторов вообще
2. Дополнительная инициализация необходимых контекстов-членов (допустим, окна контрола)
3. Вызов всех пользовательских конструкторов в нужном порядке

Возможно, вот эту идею http://www.1cpp.ru/forum/YaBB.pl?num=1211358967/3#3
надо довести до ума, чтобы CComponentClass умел выполнять п.1 и полностью п.3.

Я как раз и подразумевал, что для наследников от спец.классов типа ТП и АктивИкс можно реализовать спец. схему инициализации.
Сделать ее очень просто.
  

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: Артуру, до восстребования
Ответ #18 - 28. Мая 2008 :: 19:41
Печать  
Вижу предложение - http://www.1cpp.ru/forum/YaBB.pl?num=1211358967/11#11
Но идея добавления дополнительных конструкторов для инициализации спецклассов совсем не греет.

  

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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Артуру, до восстребования
Ответ #19 - 29. Мая 2008 :: 04:15
Печать  
kms писал(а) 27. Мая 2008 :: 16:22:
1. СоздатьОбъект() для CComponentClass - без вызова конструкторов вообще
2. Дополнительная инициализация необходимых контекстов-членов (допустим, окна контрола)
3. Вызов всех пользовательских конструкторов в нужном порядке

Можно и вот так сделать, без добавления доп.конструкторов Улыбка
Правда, немного пострадает совместимость, так что решайте, какой вариант предпочесть, с точки зрения реализации оба варианты почти одинаковы Улыбка
  

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: Артуру, до восстребования
Ответ #20 - 30. Мая 2008 :: 10:59
Печать  
Ну что решаем? Предпочтем последний вариант?
  

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: Артуру, до восстребования
Ответ #21 - 30. Мая 2008 :: 14:09
Печать  
artbear писал(а) 29. Мая 2008 :: 04:15:
Правда, немного пострадает совместимость, так что решайте, какой вариант предпочесть, с точки зрения реализации оба варианты почти одинаковы Улыбка

А чего там будет с совместимостью?
  

De quelle planète es-tu?
Наверх
 
IP записан
 
AndreyM
Full Member
***
Отсутствует



Сообщений: 166
Местоположение: Харьков
Зарегистрирован: 13. Февраля 2008
Пол: Мужской
Re: Артуру, до восстребования
Ответ #22 - 01. Июня 2008 :: 09:59
Печать  
Артур, подскажи чайнику  Подмигивание
Есть класс, в котором создан объект "Перехватчик" для того, чтобы проверять, когда мышка потеряет фокус указанного реквзита.
В форме обработки я создаю два экземпляра одного класса и в каждом указываю за каким реквизитом "следить".
Первый экземпляр обрабатывает события отлично, а второй - как не существует обработки события.
Т.е. объект "Перехватчик" может существовать на форме в единственном экземпляре?
Может есть какой-либо вариант обрабатывать события формы в разных экземплярах классов?
  

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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Артуру, до восстребования
Ответ #23 - 02. Июня 2008 :: 03:47
Печать  
AndreyM писал(а) 01. Июня 2008 :: 09:59:
Артур, подскажи чайнику  Подмигивание
Есть класс, в котором создан объект "Перехватчик" для того, чтобы проверять, когда мышка потеряет фокус указанного реквзита.
В форме обработки я создаю два экземпляра одного класса и в каждом указываю за каким реквизитом "следить".
Первый экземпляр обрабатывает события отлично, а второй - как не существует обработки события.
Т.е. объект "Перехватчик" может существовать на форме в единственном экземпляре?
Может есть какой-либо вариант обрабатывать события формы в разных экземплярах классов?

Заводи новую тему.
  

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: Артуру, до восстребования
Ответ #24 - 02. Июня 2008 :: 03:50
Печать  
kms писал(а) 30. Мая 2008 :: 14:09:
artbear писал(а) 29. Мая 2008 :: 04:15:
Правда, немного пострадает совместимость, так что решайте, какой вариант предпочесть, с точки зрения реализации оба варианты почти одинаковы Улыбка

А чего там будет с совместимостью?

Ну типа раньше народ ожидал, что класс-контрол не инициализирован, могли что-то писать, исходя из этого, а теперь будет по-другому.
Мелочь, конечно.
  

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: Артуру, до восстребования
Ответ #25 - 02. Июня 2008 :: 09:19
Печать  
artbear писал(а) 02. Июня 2008 :: 03:50:
Ну типа раньше народ ожидал, что класс-контрол не инициализирован, могли что-то писать, исходя из этого, а теперь будет по-другому.
Мелочь, конечно.

Ну, это да.
Но, думаю, не страшно это.
  

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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Артуру, до восстребования
Ответ #26 - 02. Июня 2008 :: 09:45
Печать  
Артем, открывай баг, сделаю.
  

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



Сообщений: 3046
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Артуру, до восстребования
Ответ #27 - 02. Июня 2008 :: 12:18
Печать  
kms писал(а) 20. Мая 2008 :: 23:46:
Arta писал(а) 20. Мая 2008 :: 23:23:
Миш, есть ли какие рамки по времени определения свойств ЦветЛиний, ЦветФонаВыделения, ЦветФона, СтиляЗаголовков, Шрифта?
Сегодня обнаружил что в конструкторе наследника установка этих свойств (а может и других) не дает результата.

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

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

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

Считаю что это проблема реализации ТП (вовсе не ООП). А точнее проблема связывания свойств CV7TableField и CV7CursorGridCtrl. Проблема вполне решаема путем буферизации свойств TF при не созданном Grid.

100% должен работать такой условный код:
Процедура ПриОткрытии()
 гТП=СоздатьОбъект("ТабличноеПоле");
 гТП.ЦветЛиний = Синий; //или установка свойств в конструкторе наследника ТП (случай Arta)
КонецПроцедура
Процедура ФормаПриСоздании(_Форма)
 _Форма.СоздатьЭлементУправления(гТП, Форма.Рекв);
КонецПроцедура


А так же это будет первый и основной шаг к раннему созданию ЭУ. Например в ПриОткрытии.
(kms знает о чем я)

И не надо добавлять телегу условностей к ООП.
  

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



Сообщений: 166
Местоположение: Харьков
Зарегистрирован: 13. Февраля 2008
Пол: Мужской
Re: Артуру, до восстребования
Ответ #28 - 02. Июня 2008 :: 17:44
Печать  
artbear писал(а) 02. Июня 2008 :: 03:47:
AndreyM писал(а) 01. Июня 2008 :: 09:59:
Артур, подскажи чайнику  Подмигивание
Есть класс, в котором создан объект "Перехватчик" для того, чтобы проверять, когда мышка потеряет фокус указанного реквзита.
В форме обработки я создаю два экземпляра одного класса и в каждом указываю за каким реквизитом "следить".
Первый экземпляр обрабатывает события отлично, а второй - как не существует обработки события.
Т.е. объект "Перехватчик" может существовать на форме в единственном экземпляре?
Может есть какой-либо вариант обрабатывать события формы в разных экземплярах классов?

Заводи новую тему.

Артур, завел тему: http://www.1cpp.ru/forum/YaBB.pl?num=1212416478
Пока только смотрят - ответов нет.
Может ты взглянешь, по свободе. Наглядный пример приложен.
  

Правильно поставленный вопрос, уже содержит половину ответа.
Наверх
ICQ  
IP записан
 
AndreyM
Full Member
***
Отсутствует



Сообщений: 166
Местоположение: Харьков
Зарегистрирован: 13. Февраля 2008
Пол: Мужской
Re: Артуру, до восстребования
Ответ #29 - 05. Июня 2008 :: 07:03
Печать  
Артур, не знаю кому написать Алексею aka АЛьФ или тебе, но можешь посмотреть (в ночной сборке от 02.06.08 всё нормально, а от 05.06.08 - проблемка)
Код
Выбрать все
// здесь формула кнопки "кнСтатик", к примеру "Выполнить()"
//...
АктивИкс = СоздатьОбъект("АктивИкс");
АктивИкс.УстановитьАтрибут(Конт.Форма,"кнСтатик");
//...
// а после УстановитьАтрибут: "//" 


у меня эта проблема выскочила на создаваемых атрибутах формы,
но на кнопках, созданных в конфигураторе, та же проблема.
В обоих случаях использовался FormEx 86
  

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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Артуру, до восстребования
Ответ #30 - 05. Июня 2008 :: 08:15
Печать  
AndreyM писал(а) 05. Июня 2008 :: 07:03:
Артур, не знаю кому написать Алексею aka АЛьФ или тебе, но можешь посмотреть (в ночной сборке от 02.06.08 всё нормально, а от 05.06.08 - проблемка)
Код
Выбрать все
// здесь формула кнопки "кнСтатик", к примеру "Выполнить()"
//...
АктивИкс = СоздатьОбъект("АктивИкс");
АктивИкс.УстановитьАтрибут(Конт.Форма,"кнСтатик");
//...
// а после УстановитьАтрибут: "//" 


у меня эта проблема выскочила на создаваемых атрибутах формы,
но на кнопках, созданных в конфигураторе, та же проблема.
В обоих случаях использовался FormEx 86

Конечно, мне Улыбка
Косяк мой Печаль
Забыл я про такой вариант, забыл его проверить Печаль
Ладно, все равно Дима раскопал верный вариант, без изменения формулы.
Сегодня исправлю и выложу сборку.
  

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: Артуру, до восстребования
Ответ #31 - 05. Июня 2008 :: 08:16
Печать  
Кстати, а что тебе дает наличие подобной формулы на кнопке, ведь для АктивИкс она уже не  будет работать, а?
  

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: Артуру, до восстребования
Ответ #32 - 05. Июня 2008 :: 08:25
Печать  
artbear писал(а) 05. Июня 2008 :: 08:16:
Кстати, а что тебе дает наличие подобной формулы на кнопке, ведь для АктивИкс она уже не  будет работать, а?

По идее срабатывание формулы кнопки для АктивИкс-а это баг, поэтому жду аргументированного ответа на вопрос
  

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



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Артуру, до восстребования
Ответ #33 - 05. Июня 2008 :: 08:33
Печать  
artbear писал(а) 05. Июня 2008 :: 08:25:
artbear писал(а) 05. Июня 2008 :: 08:16:
Кстати, а что тебе дает наличие подобной формулы на кнопке, ведь для АктивИкс она уже не  будет работать, а?

По идее срабатывание формулы кнопки для АктивИкс-а это баг, поэтому жду аргументированного ответа на вопрос

Ты не совсем прав.
Идея повесить активикс не только на Текст, но и на кнопку, появилась, если не ошибаюсь, именно для того, чтобы
кнопка, если нужно, работала именно, как кнопка.
Где-то у меня были активиксы-кнопки и это очень помогло при работе без мыши.
А так ты меня режешь таким решением. Надо проверить.
Или добавить в АктивИкс флаг разрешения выполнения формулы кнопки.
  
Наверх
ICQ  
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Артуру, до восстребования
Ответ #34 - 05. Июня 2008 :: 08:56
Печать  
vip писал(а) 05. Июня 2008 :: 08:33:
Идея повесить активикс не только на Текст, но и на кнопку, появилась, если не ошибаюсь, именно для того, чтобы
кнопка, если нужно, работала именно, как кнопка.


Возможность-невозможность перехода по Табу, вот все отличие!
  
Наверх
 
IP записан
 
AndreyM
Full Member
***
Отсутствует



Сообщений: 166
Местоположение: Харьков
Зарегистрирован: 13. Февраля 2008
Пол: Мужской
Re: Артуру, до восстребования
Ответ #35 - 05. Июня 2008 :: 09:04
Печать  
artbear писал(а) 05. Июня 2008 :: 08:16:
Кстати, а что тебе дает наличие подобной формулы на кнопке, ведь для АктивИкс она уже не  будет работать, а?
Да, работать не будет и не нужно. Я создаю новый атрибут и в него переписываю формулу из перехватываемого реквизита для того, чтобы потом ее выполнить или не выполнить (типа ВыполнятьФормулуТолькоПриИзменении()) в зависимости от ситуации.
Если есть реквизит у атрибута, то почему его не использовать? Иначе - плодить переменные в классе.
В принципе, я теперь сохраняю формулу в классе, но, согласись, это баг.
  

Правильно поставленный вопрос, уже содержит половину ответа.
Наверх
ICQ  
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Артуру, до восстребования
Ответ #36 - 05. Июня 2008 :: 09:06
Печать  
Arta писал(а) 05. Июня 2008 :: 08:56:
vip писал(а) 05. Июня 2008 :: 08:33:
Идея повесить активикс не только на Текст, но и на кнопку, появилась, если не ошибаюсь, именно для того, чтобы
кнопка, если нужно, работала именно, как кнопка.


Возможность-невозможность перехода по Табу, вот все отличие!

Ну. не только по Табу, по кнопкам можно бегать и стрелочками Улыбка
И я использую вешание активикса на копку, чтобы именно формула кнопки.
Артем, ты же прекрасно понимаешь, что была бы возможность, а как применить каждый решает по своему.
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Артуру, до восстребования
Ответ #37 - 05. Июня 2008 :: 09:16
Печать  
Как в итоге сформулируем-то?
Если у контрола в свойствах нет формулы, то Ентер не пущаем.
А если формула есть, то пущаем чтоли?
Давайте раз и навсегда решим, лады?
  

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



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Артуру, до восстребования
Ответ #38 - 05. Июня 2008 :: 09:18
Печать  
Цитата:
Если у контрола в свойствах нет формулы, то Ентер не пущаем.
А если формула есть, то пущаем чтоли?

Именно так. Весьма логично.
  
Наверх
ICQ  
IP записан
 
AndreyM
Full Member
***
Отсутствует



Сообщений: 166
Местоположение: Харьков
Зарегистрирован: 13. Февраля 2008
Пол: Мужской
Re: Артуру, до восстребования
Ответ #39 - 05. Июня 2008 :: 09:32
Печать  
artbear писал(а) 05. Июня 2008 :: 09:16:
Как в итоге сформулируем-то?
Если у контрола в свойствах нет формулы, то Ентер не пущаем.
А если формула есть, то пущаем чтоли?
Давайте раз и навсегда решим, лады?

По-моему, наличие формулы никак не должно влиять на поведение по Ентеру или Табу.
Атрибуты разделяются по Behavior: TabStop, т.е. у Текста нет этого "метода поведения", а у Кнопки - есть.
А нужно или нет переходить на данный атрибут по Ентеру - в 1С "птичка" Пропускать при вводе.
  

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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Артуру, до восстребования
Ответ #40 - 05. Июня 2008 :: 09:38
Печать  
AndreyM писал(а) 05. Июня 2008 :: 09:32:
artbear писал(а) 05. Июня 2008 :: 09:16:
Как в итоге сформулируем-то?
Если у контрола в свойствах нет формулы, то Ентер не пущаем.
А если формула есть, то пущаем чтоли?
Давайте раз и навсегда решим, лады?

По-моему, наличие формулы никак не должно влиять на поведение по Ентеру или Табу.
Атрибуты разделяются по Behavior: TabStop, т.е. у Текста нет этого "метода поведения", а у Кнопки - есть.
А нужно или нет переходить на данный атрибут по Ентеру - в 1С "птичка" Пропускать при вводе.

Ты путаешь - я говорю не о переходах, а нажатии на Ентер только для кнопки
  

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: Артуру, до восстребования
Ответ #41 - 05. Июня 2008 :: 09:41
Печать  
artbear писал(а) 05. Июня 2008 :: 09:38:
Ты путаешь - я говорю не о переходах, а нажатии на Ентер только для кнопки


Артур, а ведь логично, привязаться к этой галке. Будет поведение на любой вкус.
  
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Артуру, до восстребования
Ответ #43 - 05. Июня 2008 :: 09:45
Печать  
Arta писал(а) 05. Июня 2008 :: 09:41:
artbear писал(а) 05. Июня 2008 :: 09:38:
Ты путаешь - я говорю не о переходах, а нажатии на Ентер только для кнопки


Артур, а ведь логично, привязаться к этой галке. Будет поведение на любой вкус.

ИМХО вы путаете. В 1С-хелпе написано так
Цитата:
Пропускать при вводе
Если опция включена, то редактируемый элемент диалога будет пропускаться, если переход по элементам диалога выполняется нажатием клавиши Enter.

Т.е. нажатие Ентер на кнопке никак не регулируется этим флажком Улыбка
Так что не вводитесь в заблуждение.
  

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



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Артуру, до восстребования
Ответ #44 - 05. Июня 2008 :: 09:46
Печать  
Цитата:
А нужно или нет переходить на данный атрибут по Ентеру - в 1С "птичка" Пропускать при вводе.

Это немного не то.
У меня в некоторых местах кнопки сделаны, как активиксы.
У них нет события нажатия Ентера, только OnMouseClick. Поэтому срабатывание формулы кнопки-подложки очень удобно.
  
Наверх
ICQ  
IP записан
 
AndreyM
Full Member
***
Отсутствует



Сообщений: 166
Местоположение: Харьков
Зарегистрирован: 13. Февраля 2008
Пол: Мужской
Re: Артуру, до восстребования
Ответ #45 - 05. Июня 2008 :: 09:54
Печать  
artbear писал(а) 05. Июня 2008 :: 09:38:
Ты путаешь - я говорю не о переходах, а нажатии на Ентер только для кнопки
Действительно не понял: "пущаем, не пущаем" Улыбка
Есть формула - выполняем, нет - на нет и суда нет.
Если, конечно, на кнопке установлен АктивИкс, то кнопка перестает быть кнопкой - она выполняет только роль "места" для АктивИкса, поэтому никаких действий не делать.
Это чисто моё мнение.
Или опять не понял? Нерешительный
  

Правильно поставленный вопрос, уже содержит половину ответа.
Наверх
ICQ  
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3046
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Артуру, до восстребования
Ответ #46 - 05. Июня 2008 :: 10:07
Печать  
AndreyM писал(а) 05. Июня 2008 :: 09:54:
Если, конечно, на кнопке установлен АктивИкс, то кнопка перестает быть кнопкой - она выполняет только роль "места" для АктивИкса, поэтому никаких действий не делать.
Это чисто моё мнение.

+100
  

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



Сообщений: 166
Местоположение: Харьков
Зарегистрирован: 13. Февраля 2008
Пол: Мужской
Re: Артуру, до восстребования
Ответ #47 - 05. Июня 2008 :: 10:09
Печать  
vip писал(а) 05. Июня 2008 :: 09:46:
У них нет события нажатия Ентера, только OnMouseClick. Поэтому срабатывание формулы кнопки-подложки очень удобно.

А KeyDown или KeyPress нету?
  

Правильно поставленный вопрос, уже содержит половину ответа.
Наверх
ICQ  
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Артуру, до восстребования
Ответ #48 - 05. Июня 2008 :: 10:10
Печать  
AndreyM писал(а) 05. Июня 2008 :: 09:54:
artbear писал(а) 05. Июня 2008 :: 09:38:
Ты путаешь - я говорю не о переходах, а нажатии на Ентер только для кнопки
Действительно не понял: "пущаем, не пущаем" Улыбка
Есть формула - выполняем, нет - на нет и суда нет.
Если, конечно, на кнопке установлен АктивИкс, то кнопка перестает быть кнопкой - она выполняет только роль "места" для АктивИкса, поэтому никаких действий не делать.
Это чисто моё мнение.
Или опять не понял? Нерешительный

Наверное, опять.
Если на активиксе, созданном на кнопке есть формула, она работает, как штатная кнопка.
Если формулы нет, то нажатие Ентера отрабатывает только у активикса.
  
Наверх
ICQ  
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Артуру, до восстребования
Ответ #49 - 05. Июня 2008 :: 10:11
Печать  
AndreyM писал(а) 05. Июня 2008 :: 10:09:
vip писал(а) 05. Июня 2008 :: 09:46:
У них нет события нажатия Ентера, только OnMouseClick. Поэтому срабатывание формулы кнопки-подложки очень удобно.

А KeyDown или KeyPress нету?

На этих нету.
События активиксов не стандартизированы, каждый лепит, что хочет. Улыбка
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Артуру, до восстребования
Ответ #50 - 05. Июня 2008 :: 10:16
Печать  
vip писал(а) 05. Июня 2008 :: 10:10:
Если на активиксе, созданном на кнопке есть формула, она работает, как штатная кнопка.
Если формулы нет, то нажатие Ентера отрабатывает только у активикса.

Давай тестовую обработку, что-то подозрительное поведение предлагается.
Это наше совместное мнение с Димой Улыбка
  

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



Сообщений: 3046
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Артуру, до восстребования
Ответ #51 - 05. Июня 2008 :: 10:16
Печать  
vip
"ло.. (тьфу) кнопки - нет" (с)/2 matrix
  

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



Сообщений: 166
Местоположение: Харьков
Зарегистрирован: 13. Февраля 2008
Пол: Мужской
Re: Артуру, до восстребования
Ответ #52 - 05. Июня 2008 :: 10:20
Печать  
vip писал(а) 05. Июня 2008 :: 10:11:
AndreyM писал(а) 05. Июня 2008 :: 10:09:
vip писал(а) 05. Июня 2008 :: 09:46:
У них нет события нажатия Ентера, только OnMouseClick. Поэтому срабатывание формулы кнопки-подложки очень удобно.

А KeyDown или KeyPress нету?

На этих нету.
События активиксов не стандартизированы, каждый лепит, что хочет. Улыбка
Честно, я вообще пока не использую события в АктивИксе - наверное тупой или не пробовал.
Делаю вот так:
Код
Выбрать все
Процедура Событие_ПриНажатииКнопкиКлавиатуры(КК, А, Ш, К, Символ, ФСО) Экспорт
...
	Если Конт.Форма.АктивныйЭлемент() = <ИмяАктивИкса> Тогда
		ФСО = 0;
		Если КК = 13 Тогда	// enter
			// действия по нажатию Ентер
		Иначе...
... 

  

Правильно поставленный вопрос, уже содержит половину ответа.
Наверх
ICQ  
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Артуру, до восстребования
Ответ #53 - 05. Июня 2008 :: 10:30
Печать  
AndreyM писал(а) 05. Июня 2008 :: 10:20:
Делаю вот так:


Как ты это сделаешь в классе-наследнике?
  
Наверх
 
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Артуру, до восстребования
Ответ #54 - 05. Июня 2008 :: 10:38
Печать  
artbear писал(а) 05. Июня 2008 :: 10:16:
vip писал(а) 05. Июня 2008 :: 10:10:
Если на активиксе, созданном на кнопке есть формула, она работает, как штатная кнопка.
Если формулы нет, то нажатие Ентера отрабатывает только у активикса.

Давай тестовую обработку, что-то подозрительное поведение предлагается.
Это наше совместное мнение с Димой Улыбка

Так. Запутали старого окончательно. Улыбка
Сегодняшнее, вернее позавчерашнее положение дел меня более, чем устраивает.
У меня нет проблем с кнопкой-контейнером без формулы.
Нет формулы - ну и нет. Есть - отабатывает по Ентер.
Судя по всему, такая проблема есть только для некоторых контролов от Майкрософт.
Меня просто насторожила полемика вокруг изменения поведения активиксов.
Не хочу неожиданностей.
  
Наверх
ICQ  
IP записан
 
AndreyM
Full Member
***
Отсутствует



Сообщений: 166
Местоположение: Харьков
Зарегистрирован: 13. Февраля 2008
Пол: Мужской
Re: Артуру, до восстребования
Ответ #55 - 05. Июня 2008 :: 10:38
Печать  
Arta писал(а) 05. Июня 2008 :: 10:30:
AndreyM писал(а) 05. Июня 2008 :: 10:20:
Делаю вот так:


Как ты это сделаешь в классе-наследнике?

у меня один класс обрабатывает события <ИмяАктивИкса>. Сам создал, сам и мучается с ним.
Или в чем вопрос?
  

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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Артуру, до восстребования
Ответ #56 - 05. Июня 2008 :: 11:09
Печать  
vip писал(а) 05. Июня 2008 :: 10:38:
artbear писал(а) 05. Июня 2008 :: 10:16:
vip писал(а) 05. Июня 2008 :: 10:10:
Если на активиксе, созданном на кнопке есть формула, она работает, как штатная кнопка.
Если формулы нет, то нажатие Ентера отрабатывает только у активикса.

Давай тестовую обработку, что-то подозрительное поведение предлагается.
Это наше совместное мнение с Димой Улыбка

Так. Запутали старого окончательно. Улыбка
Сегодняшнее, вернее позавчерашнее положение дел меня более, чем устраивает.
У меня нет проблем с кнопкой-контейнером без формулы.
Нет формулы - ну и нет. Есть - отабатывает по Ентер.
Судя по всему, такая проблема есть только для некоторых контролов от Майкрософт.
Меня просто насторожила полемика вокруг изменения поведения активиксов.
Не хочу неожиданностей.

Я тебе сказал, опиши свою проблему, лучше тестом.
Нафига тебе отработка Ентера и формулы на АктивИкс-е?
В приведенном от автора тесте баг с Ентером четко видно, и мы считаем, что его нужно исправить.
  

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



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Артуру, до восстребования
Ответ #57 - 05. Июня 2008 :: 11:35
Печать  
Цитата:
Нафига тебе отработка Ентера и формулы на АктивИкс-е?

Оператор, не трогая мышь, заполняет реквизиты на форме.
Переход на следующее поле ввода происходит после нажатия Ентер.
После заполнения последнего поля фокус переходит на активикс, у которого нет события KeyPress.
Оператор жмет Ентер, срабатывает формула кнопки-контейнера и работа с формой закончена.
Если ты уберешь срабатывание формулы на кнопке-контейнере, то ему нужно брать в руки мышь.
А при массовом вводе важно каждое движение.
Вот и все. Это так работает у меня сейчас.

ЗЫ. Если окончательно решите изменить поведение активикса на кнопке, мне пох.
Пару строчек уж перепишу, если это важно.
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Артуру, до восстребования
Ответ #58 - 05. Июня 2008 :: 11:37
Печать  
vip писал(а) 05. Июня 2008 :: 11:35:
Цитата:
Нафига тебе отработка Ентера и формулы на АктивИкс-е?

Оператор, не трогая мышь, заполняет реквизиты на форме.
Переход на следующее поле ввода происходит после нажатия Ентер.
После заполнения последнего поля фокус переходит на активикс, у которого нет события KeyPress.
Оператор жмет Ентер, срабатывает формула кнопки-контейнера и работа с формой закончена.
Если ты уберешь срабатывание формулы на кнопке-контейнере, то ему нужно брать в руки мышь.
А при массовом вводе важно каждое движение.
Вот и все. Это так работает у меня сейчас.

ЗЫ. Если окончательно решите изменить поведение активикса на кнопке, мне пох.
Пару строчек уж перепишу, если это важно.

Тогда тебе просто нужно поставить галочку "пропускать при вводе" и обрабатывать какую-то другую кнопку, где стоит нужная формула.
  

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



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Артуру, до восстребования
Ответ #59 - 05. Июня 2008 :: 11:46
Печать  
Цитата:
Тогда тебе просто нужно поставить галочку "пропускать при вводе" и обрабатывать какую-то другую кнопку, где стоит нужная формула.

Да мне как раз не надо пропускать при вводе Очень довольный
То, что ты предлагаешь, достигается созданием активикса на Тексте.
Ладно, Артур, не заморачивайся. Перепишу.
Просто вот это
Цитата:
Цитата:
Если у контрола в свойствах нет формулы, то Ентер не пущаем.
А если формула есть, то пущаем чтоли?

было самым логичным.
Я, наверное, один формулы на кнопке пишу Улыбка
  
Наверх
ICQ  
IP записан
 
AndreyM
Full Member
***
Отсутствует



Сообщений: 166
Местоположение: Харьков
Зарегистрирован: 13. Февраля 2008
Пол: Мужской
Re: Артуру, до восстребования
Ответ #60 - 05. Июня 2008 :: 11:47
Печать  
Arta писал(а) 05. Июня 2008 :: 10:30:
AndreyM писал(а) 05. Июня 2008 :: 10:20:
Делаю вот так:


Как ты это сделаешь в классе-наследнике?

В базовом классе напишу вот так:

Код
Выбрать все
Перем Конт Экспорт;	// групповой контекст формы
Перем ИмяАктивИкса Экспорт;	// имя созданного АктивИска

Процедура Событие_ПриНажатииКнопкиКлавиатуры(КК, А, Ш, К, Символ, ФСО) Экспорт
...
	Если GetThis(Контекст).Конт.Форма.АктивныйЭлемент() = GetThis(Контекст).ИмяАктивИкса Тогда
		ФСО = 0;
		Если КК = 13 Тогда	// enter
			GetThis(Контекст).ДействияПоНажатиюЕнтер();	// действия по нажатию Ентер
		Иначе...
...  

  

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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Артуру, до восстребования
Ответ #61 - 05. Июня 2008 :: 12:01
Печать  
(vip) Ты не торопись, мы хотим учесть все мнения и получить оптимальный вариант Улыбка
  

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



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Артуру, до восстребования
Ответ #62 - 05. Июня 2008 :: 12:10
Печать  
AndreyM писал(а) 05. Июня 2008 :: 11:47:
В базовом классе напишу вот так:


При таком раскладе нужно править каждую форму (событие формекса ПриНажатииКлавы) где используются активиксы.
Если уж идти таким путем, то неоднократно предложенное мною на форуме решение с Перехватчиком элегантнее.
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Артуру, до восстребования
Ответ #63 - 05. Июня 2008 :: 12:14
Печать  
Arta писал(а) 05. Июня 2008 :: 12:10:
AndreyM писал(а) 05. Июня 2008 :: 11:47:
В базовом классе напишу вот так:


При таком раскладе нужно править каждую форму (событие формекса ПриНажатииКлавы) где используются активиксы.
Если уж идти таким путем, то неоднократно предложенное мною на форуме решение с Перехватчиком элегантнее.

Артем, а давай ты свое решение еще раз сформулируешь в коде и выложишь в разделе Репозитарий !
Думаю, будет очень полезно.
  

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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Артуру, до восстребования
Ответ #64 - 05. Июня 2008 :: 12:18
Печать  
artbear писал(а) 05. Июня 2008 :: 12:01:
(vip) Ты не торопись, мы хотим учесть все мнения и получить оптимальный вариант Улыбка

Появился хороший вариант решения, вот цитаты из аськи
Цитата:
>> 05.06.2008 17:55:43 Trad wrote:
>> Вижу вариант, когда сам контейнер умеет генерить события от себя, как события ТП или ПТД
>> Внешне будет походить на формулу в кнопке (и випа это устроит), но будет однозначное событие от контрола.
>> А не так как вродебы и кнопки нет, а поведение от нее осталось.

Trad wrote:
>> ну да событие "Выбор"

Trad wrote:
>> а Выбор - это VK_Return + LMouseDown

>> 05.06.2008 18:14:58 artbear wrote:
>> т.е. событие Выбор просто оповещает пользователя о том, что был выбор, пользователь может делать, что хочет, но далее все равно управление переходит к АктивИксу
  

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



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Артуру, до восстребования
Ответ #65 - 05. Июня 2008 :: 12:26
Печать  
artbear
Вариант отличный. Я думаю, устроит всех.
  
Наверх
ICQ  
IP записан
 
Arta
1c++ power user
Отсутствует



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


Я в Москве. В субботу по приезду домой - сделаю. В первый раз возникло острое желание выложить что-то в репозиторий Улыбка
  
Наверх
 
IP записан
 
AndreyM
Full Member
***
Отсутствует



Сообщений: 166
Местоположение: Харьков
Зарегистрирован: 13. Февраля 2008
Пол: Мужской
Re: Артуру, до восстребования
Ответ #67 - 06. Июня 2008 :: 05:46
Печать  
Arta писал(а) 05. Июня 2008 :: 12:10:
AndreyM писал(а) 05. Июня 2008 :: 11:47:
В базовом классе напишу вот так:

При таком раскладе нужно править каждую форму (событие формекса ПриНажатииКлавы) где используются активиксы.

Зачем править каждую форму? Мы же говорили о классе-наследнике. ПриНажатииКлавы нужно будет реализовать в классе, а не на форме
  

Правильно поставленный вопрос, уже содержит половину ответа.
Наверх
ICQ  
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Артуру, до восстребования
Ответ #68 - 06. Июня 2008 :: 05:49
Печать  
artbear
Решение из http://www.1cpp.ru/forum/YaBB.pl?num=1211358967/65#64 принято?
К чему готовиться?
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Артуру, до восстребования
Ответ #69 - 06. Июня 2008 :: 05:54
Печать  
Да, принято.
Именно оно и будет реализовано.
Скорее всего, реализация будет сделана мной именно сегодня в течение дня.
  

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



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Артуру, до восстребования
Ответ #70 - 06. Июня 2008 :: 06:00
Печать  
artbear писал(а) 06. Июня 2008 :: 05:54:
Да, принято.
Именно оно и будет реализовано.
Скорее всего, реализация будет сделана мной именно сегодня в течение дня.

Отлично.
И попробовать можно будет сегодня?
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Артуру, до восстребования
Ответ #71 - 06. Июня 2008 :: 06:12
Печать  
Скорее всего Улыбка
Как раз занимаюсь.
  

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



Сообщений: 166
Местоположение: Харьков
Зарегистрирован: 13. Февраля 2008
Пол: Мужской
Re: Артуру, до восстребования
Ответ #72 - 06. Июня 2008 :: 07:01
Печать  
vip писал(а) 05. Июня 2008 :: 10:11:
На этих нету.
События активиксов не стандартизированы, каждый лепит, что хочет. Улыбка

а у тебя нет, случайно, списка АктивИкс'ов и их методов/свойств/событий, которые можно использовать в 1С++?
Может свои поиски/изыскания или ссылка на какую-либо страничку, которая хотя-бы приблизительно отражала данный вопрос?
  

Правильно поставленный вопрос, уже содержит половину ответа.
Наверх
ICQ  
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Артуру, до восстребования
Ответ #73 - 06. Июня 2008 :: 07:11
Печать  
Кстати говоря, если сделать АктивИкс на контейнере "Текст", то, в моем случае, вообще нажатия кнопок АктивИксом не ловились. Поэтому создаю АктивИкс "Forms.TextBox.1" на кнопке, а не на тексте. И еще замечание - если кнопке присвоен идентификатор "ИдентификаторКнопки", то при нажатии на ней Ентер-а срабатывает формула "ИдентификаторКнопки()"
  
Наверх
ICQ  
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Артуру, до восстребования
Ответ #74 - 06. Июня 2008 :: 07:18
Печать  
AndreyM писал(а) 06. Июня 2008 :: 07:01:
vip писал(а) 05. Июня 2008 :: 10:11:
На этих нету.
События активиксов не стандартизированы, каждый лепит, что хочет. Улыбка

а у тебя нет, случайно, списка АктивИкс'ов и их методов/свойств/событий, которые можно использовать в 1С++?
Может свои поиски/изыскания или ссылка на какую-либо страничку, которая хотя-бы приблизительно отражала данный вопрос?

Запускаешь Эксель, переходишь в режим редактирования макросов (Alt-F11) жмешь F2 (View-ObjectBrowser) в списке Classes жмешь правую кнопку мыши, выбираешь References - выбираешь галочками из списка нужные тебе. (например "Набор интерфейсов для автоматизации Конфигуратора 1с 7.7") После этого сверху в поле Libraries можешь выбрать нужную тебе библиотеку и смотреть ее Объекты/методы (Для "Конфигуратора" это будет библиотека OpenConf)
  
Наверх
ICQ  
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Артуру, до восстребования
Ответ #75 - 06. Июня 2008 :: 07:27
Печать  
Цитата:
а у тебя нет, случайно, списка АктивИкс'ов и их методов/свойств/событий, которые можно использовать в 1С++?

В 1С++ можно использовать любые активиксы.
  
Наверх
ICQ  
IP записан
 
AndreyM
Full Member
***
Отсутствует



Сообщений: 166
Местоположение: Харьков
Зарегистрирован: 13. Февраля 2008
Пол: Мужской
Re: Артуру, до восстребования
Ответ #76 - 06. Июня 2008 :: 07:39
Печать  
Salimbek писал(а) 06. Июня 2008 :: 07:11:
если кнопке присвоен идентификатор "ИдентификаторКнопки", то при нажатии на ней Ентер-а срабатывает формула "ИдентификаторКнопки()"
Какой-бы идентификатор в кнопке не задал, если в поле формула пусто, то по нажатию будет вызываться одноименная процедура.
Попробуй вместо "ИдентификаторКнопки" в идентификаторе написать "Бла_бла_бла" - у тебя будет вызываться процедура "Бла_бла_бла()"
  

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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Артуру, до восстребования
Ответ #77 - 06. Июня 2008 :: 11:13
Печать  
Для АктивИкс реализовано новое событие Выбор
Цитата:
Выбор / Selection
---------------------------------------------------------------------
     **Синтаксис для формы:** Выбор( Объект )

     **Синтаксис для КОП:** Выбор()

     **Параметры:**

           - Объект - тип: АктивИкс или КОП-наследник АктивИкс. Параметр Объект не передается в случае нахождения обработчика в наследнике АктивИкс.

     **Описание:** Возникает при нажатии Enter или двойном щелчке на элементе АктивИкс в форме.
     После обработки данного события управление передается самому ЭУ.


http://www.1cpp.ru/forum/YaBB.pl?num=1206042291/308#308
  

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



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Артуру, до восстребования
Ответ #78 - 06. Июня 2008 :: 11:30
Печать  
Вроде все нормально работает.
Хорошо получилось - и волки сыты, и овцы целки  Улыбка
  
Наверх
ICQ  
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Артуру, до восстребования
Ответ #79 - 06. Июня 2008 :: 11:59
Печать  
AndreyM писал(а) 06. Июня 2008 :: 07:39:
Salimbek писал(а) 06. Июня 2008 :: 07:11:
если кнопке присвоен идентификатор "ИдентификаторКнопки", то при нажатии на ней Ентер-а срабатывает формула "ИдентификаторКнопки()"
Какой-бы идентификатор в кнопке не задал, если в поле формула пусто, то по нажатию будет вызываться одноименная процедура.
Попробуй вместо "ИдентификаторКнопки" в идентификаторе написать "Бла_бла_бла" - у тебя будет вызываться процедура "Бла_бла_бла()"

Именно это я и имел ввиду
  
Наверх
ICQ  
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Артуру, до восстребования
Ответ #80 - 07. Июня 2008 :: 05:58
Печать  
artbear
Артур, может про новое событие активикса Выбор лучше написать, что его применение абсолютно идентично применению штатных событий АктивИкс?
А то немного сбивает с толку твое описание применения.
Я, например, со второго раза только сообразил, как это работает Улыбка
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Артуру, до восстребования
Ответ #81 - 07. Июня 2008 :: 06:19
Печать  
Я долго думал, как описать событие.
Лады, добавлю к своему описанию твою фразу насчет идентичности применения Улыбка
  

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



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Артуру, до восстребования
Ответ #82 - 08. Июня 2008 :: 20:32
Печать  
vip писал(а) 06. Июня 2008 :: 07:27:
В 1С++ можно использовать любые активиксы.

Эээ... Я бы не спешил с такими заявлениями Улыбка
Есть немало активиксов, которые приводят с вылету 1С просто при создании.
  
Наверх
 
IP записан
 
AndreyM
Full Member
***
Отсутствует



Сообщений: 166
Местоположение: Харьков
Зарегистрирован: 13. Февраля 2008
Пол: Мужской
Re: Артуру, до восстребования
Ответ #83 - 09. Июня 2008 :: 06:05
Печать  
Arta писал(а) 08. Июня 2008 :: 20:32:
vip писал(а) 06. Июня 2008 :: 07:27:
В 1С++ можно использовать любые активиксы.

Эээ... Я бы не спешил с такими заявлениями Улыбка
Есть немало активиксов, которые приводят с вылету 1С просто при создании.

И я об этом же, поэтому и спрашивал.
Может у кого будет, своего рода, набросок перечня визуальных объектов АктивИкс с их свойствами/методами?
Думаю в репозитарии это была бы полезная инфа.
Предложенное Salimbek'ом http://www.1cpp.ru/forum/YaBB.pl?num=1211358967/60#74 несколько не то, но для определенных случаев интересная информация.
  

Правильно поставленный вопрос, уже содержит половину ответа.
Наверх
ICQ  
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Артуру, до восстребования
Ответ #84 - 09. Июня 2008 :: 07:42
Печать  
Проще перечислять те, что не работают. Но таких единицы, и маловероятно что ты с ними столкнешься.


А для обзора активиксов в системе используй Com Explorer.
  
Наверх
 
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Артуру, до восстребования
Ответ #85 - 09. Июня 2008 :: 07:45
Печать  
Arta писал(а) 09. Июня 2008 :: 07:42:
Проще перечислять те, что не работают. Но таких единицы, и маловероятно что ты с ними столкнешься.

Мне повезло, не сталкивался. Улыбка
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: [1] 
ОтправитьПечать