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



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Нестабильность 1С++
Ответ #45 - 12. Июля 2006 :: 18:32
Печать  
kms писал(а) 12. Июля 2006 :: 17:08:
Угу. 1 раз для каждой формы и каждого события.


Вот этого то и не хочется. Например, придумал Альф перехват нового события и заново приходится залазить в md... Печаль
  
Наверх
 
IP записан
 
sedmin
1c++ developer
Отсутствует


I Hate Fat YaBB 2!

Сообщений: 862
Зарегистрирован: 24. Мая 2006
Re: Нестабильность 1С++
Ответ #46 - 12. Июля 2006 :: 18:59
Печать  
Нестабильным будет то, что происходит автоматически, без твоего участия, когда ты этого не ожидаешь.

Нужно явно указывать, какое событие которому объекту делегируется. Например так:
Код
Выбрать все
РасширениеФормы.ДелегироватьСобытие("ПриПереносеЭлементаВДругуюГруппу", МойОбработчикСобытий) 

  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Нестабильность 1С++
Ответ #47 - 12. Июля 2006 :: 19:27
Печать  
sedmin писал(а) 12. Июля 2006 :: 18:59:
Нестабильным будет то, что происходит автоматически, без твоего участия, когда ты этого не ожидаешь.

Неявным, ты имеешь в виду.
Стабильным или нестабильным - это зависит от реализации.
ОК. ты - за явное решение.

Цитата:
Вот этого то и не хочется. Например, придумал Альф перехват нового события и заново приходится залазить в md...

ОК. Artа  - за неявное решение, причем без определения интерфейса в базовом классе.

Да, собственно, все это не проблема.
Можно вообще сделать фантом контекста - полное отображение (редирект) одного контекста в другой контекст.
Вы думаете, это прикольно будет?

Код
Выбрать все
офп = СоздатьОбъект("Общие.Форма.Привязка");
хз_что.НазначитьФантом(офп, Контекст);

// ну или так
хз_что.НазначитьФантом(офп, Контекст, "ПриДвиженииНа, ПриНажатииНа, ПриОтжатииНа, ПриИзмененииНа");
 


  

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



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Нестабильность 1С++
Ответ #48 - 12. Июля 2006 :: 20:11
Печать  
kms писал(а) 12. Июля 2006 :: 19:27:
Код
Выбрать все
офп = СоздатьОбъект("Общие.Форма.Привязка");
хз_что.НазначитьФантом(офп, Контекст);
 




Я всегда стремлюсь к универсальности.

Но в целом, я бы был в восторге от любой возможности, описанной выше Улыбка
  
Наверх
 
IP записан
 
DrACe
1c++ donor
1c++ power user
Отсутствует


1С++ любитель

Сообщений: 447
Местоположение: г. Новосибирск
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Нестабильность 1С++
Ответ #49 - 13. Июля 2006 :: 03:40
Печать  
мне кажется в этом случае точно нельзя делать неявные решения, потому как может очень сильно пострадать ранее написанный код.

так что вариант подписки на события (делегирования, или как это там называется) мне нравится
  
Наверх
 
IP записан
 
sedmin
1c++ developer
Отсутствует


I Hate Fat YaBB 2!

Сообщений: 862
Зарегистрирован: 24. Мая 2006
Re: Нестабильность 1С++
Ответ #50 - 13. Июля 2006 :: 04:10
Печать  
kms писал(а) 12. Июля 2006 :: 19:27:
Неявным, ты имеешь в виду.
Стабильным или нестабильным - это зависит от реализации.
ОК. ты - за явное решение.

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

Да, я за явное решение. То, что я предложил - самое простое решение. На его основе можно навернуть все, что угодно, в том числе и НазначитьФантом.
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Нестабильность 1С++
Ответ #51 - 13. Июля 2006 :: 06:19
Печать  
sedmin писал(а) 13. Июля 2006 :: 04:10:
kms писал(а) 12. Июля 2006 :: 19:27:
Неявным, ты имеешь в виду.
Стабильным или нестабильным - это зависит от реализации.
ОК. ты - за явное решение.

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

Еще раз: стабильность для меня - это системная категория: отсутствие вылетов, критических замедлений и т.п.
То, что ты написал - это категории надежности реализации уже средствами языка и простота дизайна.

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

Цитата:
Да, я за явное решение. То, что я предложил - самое простое решение. На его основе можно навернуть все, что угодно, в том числе и НазначитьФантом.


Ну, Arta я могу понять - он свою задачу 100% сформулировал.
Могу соглашаться или нет - второй вопрос.

А твое предложение. Чем оно лучше элементарной агрегации, о которой написал чуть выше?
Не вижу.
  

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


I Hate Fat YaBB 2!

Сообщений: 862
Зарегистрирован: 24. Мая 2006
Re: Нестабильность 1С++
Ответ #52 - 13. Июля 2006 :: 08:01
Печать  
Тем, что этот код я смогу написать ОДИН раз в глобальнике, или в каком-то классе.

А не в каждой форме.

Цитата:
"Дублирование - всегда плохо"
К. Бек. Экстремальное программирование. Разработка через тестирование.
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Нестабильность 1С++
Ответ #53 - 13. Июля 2006 :: 08:45
Печать  
Заметь, это разные виды делегирования.

Одно дело - делегирование для конкретного контекста.
Это то, о чем говорил я и Arta.

Другое дело - делегирование событий для всех контекстов.
Как существующих, так и тех, которые только будут созданы.

P.S.
Вот здесь я этот вопрос поднимал (п. 21)
http://itland.ru/forum//index.php?showtopic=15385&hl=%EF%E5%F0%E5%F5%E2%E0%F2%FB...

Код
Выбрать все
РасширениеФормы.ДелегироватьСобытие("ПриПереносеЭлементаВДругуюГруппу", МойОбработчикСобытий) 


ОК. Что конкретно делает твой код?
  

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



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Нестабильность 1С++
Ответ #54 - 13. Июля 2006 :: 08:48
Печать  
Может имеет смыл завести отдельну ветку под эту тему? Тема-то большая и интересная.
  

FormEx developer
Наверх
www  
IP записан
 
Deb
1c++ developer
Отсутствует


Sex, drugs and 1C

Сообщений: 41
Зарегистрирован: 21. Мая 2006
Re: Нестабильность 1С++
Ответ #55 - 13. Июля 2006 :: 10:39
Печать  
Ребята, думаю, что единственно верное решение это писать код делегирования события формы/модуля в код объекта класса напрямую в модуле, а что бы все время этим не заниматься, написать формы - шаблоны, где все события уже прописаны и требуется заменить только название создаваемого класса. Почему так, а не иначе? Потому что более тесная интеграция объектной модели в 7.7. при отсутствии исходников оной потребует сильного хака для реализации. Именно поэтому в свое время я отказался от этой затеии, хотя Саша Орефков мне предложил нечто подобное уже в виде кода. Просто возникает вопрос, а какого хрена,тогда исключали код Альфа, когда сами в итоге решили добавить ту же не стабильность!
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Нестабильность 1С++
Ответ #56 - 13. Июля 2006 :: 11:14
Печать  
Deb писал(а) 13. Июля 2006 :: 10:39:
а какого хрена,тогда исключали код Альфа

не по причине наличия хака как такового.
  

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


Sex, drugs and 1C

Сообщений: 41
Зарегистрирован: 21. Мая 2006
Re: Нестабильность 1С++
Ответ #57 - 13. Июля 2006 :: 11:21
Печать  
trad писал(а) 13. Июля 2006 :: 11:14:
Deb писал(а) 13. Июля 2006 :: 10:39:
а какого хрена,тогда исключали код Альфа

не по причине наличия хака как такового.


Это было как один из озвученных аргументов в пользу разделения.
  
Наверх
 
IP записан
 
sedmin
1c++ developer
Отсутствует


I Hate Fat YaBB 2!

Сообщений: 862
Зарегистрирован: 24. Мая 2006
Re: Нестабильность 1С++
Ответ #58 - 13. Июля 2006 :: 11:23
Печать  
kms писал(а) 13. Июля 2006 :: 08:45:
Код
Выбрать все
РасширениеФормы.ДелегироватьСобытие("ПриПереносеЭлементаВДругуюГруппу", МойОбработчикСобытий) 


ОК. Что конкретно делает твой код?


Ну методы объекта РасширениеФормы обычно действуют на конкретную форму (контекст). Я думал, что так будет понятно.
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Нестабильность 1С++
Ответ #59 - 13. Июля 2006 :: 11:45
Печать  
sedmin писал(а) 13. Июля 2006 :: 11:23:
kms писал(а) 13. Июля 2006 :: 08:45:
Код
Выбрать все
РасширениеФормы.ДелегироватьСобытие("ПриПереносеЭлементаВДругуюГруппу", МойОбработчикСобытий) 


ОК. Что конкретно делает твой код?


Ну методы объекта РасширениеФормы обычно действуют на конкретную форму (контекст). Я думал, что так будет понятно.

Я полагал, что форма и контекст - разные понятия.

Цитата:
Тем, что этот код я смогу написать ОДИН раз в глобальнике, или в каком-то классе.

Хм. Один раз в глобальнике. Но выполняться он должен для каждой формы. Так, что ли.
Из последней фразы, я уже было понял, что перехват идет для всех существующих контекстов.
Оказывается - нет. Для конкретной формы.

Я, собственно, и хотел, чтобы ты описал более четкую концепцию.
Мне-то и агрегирования хватает с лихвой.
  

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