Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) Вопрос по ОбработкеОжидания (число прочтений - 5140 )
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Вопрос по ОбработкеОжидания
16. Июля 2007 :: 02:59
Печать  
Ни кто не сталкивался с необходимостью в классе переодически вызывать какойто метод класса?
т.е. не процедуру формы или глобального модуля а именно метод класса?
  
Наверх
ICQ  
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Вопрос по ОбработкеОжидания
Ответ #1 - 16. Июля 2007 :: 07:35
Печать  
Не думаю что это хорошо. Проще сделай метод экспортным и вызывай его в обработке ожидания в форме.
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Вопрос по ОбработкеОжидания
Ответ #2 - 16. Июля 2007 :: 07:37
Печать  
Arta писал(а) 16. Июля 2007 :: 07:35:
Не думаю что это хорошо. Проще сделай метод экспортным и вызывай его в обработке ожидания в форме.


Видимо так и придется но, класс "Таймер" всё равно не помешал бы
  
Наверх
ICQ  
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Вопрос по ОбработкеОжидания
Ответ #3 - 16. Июля 2007 :: 07:44
Печать  
А смысл? Многопоточности все равно нет.
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Вопрос по ОбработкеОжидания
Ответ #4 - 16. Июля 2007 :: 07:48
Печать  
Arta писал(а) 16. Июля 2007 :: 07:44:
А смысл? Многопоточности все равно нет.


Почему нет? Сервис.ОбработкаОжидания() как сделано?
  
Наверх
ICQ  
IP записан
 
Arta
1c++ power user
Отсутствует



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

ХЗ... я могу ошибаться.
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Вопрос по ОбработкеОжидания
Ответ #6 - 16. Июля 2007 :: 08:24
Печать  
Arta писал(а) 16. Июля 2007 :: 08:12:
ОбработкаОжидания
Т.е. какой тогда смысл делать именно класс Таймер?
В класс обычно инкапсулируются схожие по функционалу методы, что тогда засовывать в класс для Таймера?

ХЗ... я могу ошибаться.


т.е. например аналогичный класс в Delphi излишен? Подмигивание Или как?
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Вопрос по ОбработкеОжидания
Ответ #7 - 25. Июля 2007 :: 17:13
Печать  
Мое ИМХО - У 1С все идет по принципу - пока не закончится выполнение кода модуля, управление не будет передано в любой другой код (модуль, класс и т.д.)
Так что полноценного класса таймера построить не удастся.
Используй обработку ожидания.
  

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



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Вопрос по ОбработкеОжидания
Ответ #8 - 26. Июля 2007 :: 01:04
Печать  
artbear писал(а) 25. Июля 2007 :: 17:13:
Мое ИМХО - У 1С все идет по принципу - пока не закончится выполнение кода модуля, управление не будет передано в любой другой код (модуль, класс и т.д.)
Так что полноценного класса таймера построить не удастся.
Используй обработку ожидания.

   Так и делою, просто некоторые веши которые можно было бы оформить в класс приходится таскать за сабой в виде процедур
  
Наверх
ICQ  
IP записан
 
dnp
Senior Member
****
Отсутствует


.

Сообщений: 479
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Вопрос по ОбработкеОжидания
Ответ #9 - 26. Июля 2007 :: 01:31
Печать  
Я так понимаю, что тебе на таймер много обработчиков привесить хочется? Ну сделай в обработке ожидания статический глобальный объект МенеджерСобытий и  .ПослатьСобытие(...) и подписывайся на него своими обработчиками. Вот он и выйдет, "типа класс таймер".

Минусы
- частота отсчетов одна на всех
- обработчики вызываются все по очереди, ошибка в одном рубит остальных
- перед удалением подписчика (закрытием формы с ним) обязательно делать снятие с подписки. иначе - вылет в космос

Если я правильно понял задачу.
(И если правильно придумал решение Улыбка )
  
Наверх
ICQ  
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Вопрос по ОбработкеОжидания
Ответ #10 - 26. Июля 2007 :: 01:35
Печать  
dnp писал(а) 26. Июля 2007 :: 01:31:
Я так понимаю, что тебе на таймер много обработчиков привесить хочется? Ну сделай в обработке ожидания статический глобальный объект МенеджерСобытий и  .ПослатьСобытие(...) и подписывайся на него своими обработчиками. Вот он и выйдет, "типа класс таймер".

Минусы
- частота отсчетов одна на всех
- обработчики вызываются все по очереди, ошибка в одном рубит остальных
- перед удалением подписчика (закрытием формы с ним) обязательно делать снятие с подписки. иначе - вылет в космос

Если я правильно понял задачу.
(И если правильно придумал решение Улыбка )


Не всё гораздо проще Есть кнопка, нужно чтоб она срабатывала пока нажата - т.е. не один раз а пока нажата!
Соответственно активная кнопка может быть только одна и обработка по таимеру выполняется одна.
  
Наверх
ICQ  
IP записан
 
dnp
Senior Member
****
Отсутствует


.

Сообщений: 479
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Вопрос по ОбработкеОжидания
Ответ #11 - 26. Июля 2007 :: 06:30
Печать  
тогда примерно так:
Код
Выбрать все
Перем флКнопкаНажата;

Процедура ПриОткрытии()
	ОбработкаОжидания( "ОбрОжидания", 1 ); // работает всё время существования формы
КонецПроцедуры

Процедура ОбрОжидания()
	Если ( флКнопкаНажата = 1 ) Тогда
		// ... что там нужно сделать?
	КонецЕсли;
КонецПроцедуры

Процедура ПриНажатииЛевойКнопки(...)
	Если ( НажалиИменноНаНашуКнопку(...) = 1 ) Тогда
		флКнопкаНажата = 1;
	КонецЕсли;
КонецПроцедуры

Процедура ПриОтжатииЛевойКнопки(...)
	флКнопкаНажата = 0;
КонецПроцедуры
 



. Плюс можно проверку на сползание неотжатой мышки с твоей кнопки отслеживать.

Ибо из-за Цитата:
Есть кнопка, нужно чтоб она срабатывала пока нажата
класс тебе не поможет, всё равно НажатиеОтжатие мышки через FormEx отлавливать.
  
Наверх
ICQ  
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Вопрос по ОбработкеОжидания
Ответ #12 - 26. Июля 2007 :: 06:38
Печать  
dnp писал(а) 26. Июля 2007 :: 06:30:
тогда примерно так:
Код
Выбрать все
Перем флКнопкаНажата;

Процедура ПриОткрытии()
	ОбработкаОжидания( "ОбрОжидания", 1 ); // работает всё время существования формы
КонецПроцедуры

Процедура ОбрОжидания()
	Если ( флКнопкаНажата = 1 ) Тогда
		// ... что там нужно сделать?
	КонецЕсли;
КонецПроцедуры

Процедура ПриНажатииЛевойКнопки(...)
	Если ( НажалиИменноНаНашуКнопку(...) = 1 ) Тогда
		флКнопкаНажата = 1;
	КонецЕсли;
КонецПроцедуры

Процедура ПриОтжатииЛевойКнопки(...)
	флКнопкаНажата = 0;
КонецПроцедуры
 



. Плюс можно проверку на сползание неотжатой мышки с твоей кнопки отслеживать.

Ибо из-за Цитата:
Есть кнопка, нужно чтоб она срабатывала пока нажата
класс тебе не поможет, всё равно НажатиеОтжатие мышки через FormEx отлавливать.


Это понятно примерно так и сделано! А класс попожет

Процедура ПриНажатииЛевойКнопки
          НашКласс.Нажали("НашаКнопка");
КонецПроцедуры


Процедура ПриОтжатииЛевойКнопки
          НашКласс.Отжали();
КонецПроцедуры
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать