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


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Встроенный класс Таймер
Ответ #15 - 02. Октября 2007 :: 12:47
Печать  
artbear писал(а) 02. Октября 2007 :: 12:37:
vandalsvq писал(а) 02. Октября 2007 :: 12:35:
пока тут пробовал новый функционал вот что нарыл

1. Данная конструкция в модальной форме повесила 1С и вылетела в итоге в трубу. При этом в статусной строке очень много раз было показано "выполняется обработка".
Окна = СоздатьОбъект("Окна");
Окна.ЗакрытьВсеОкна();

2. Конструкция вот такого характера
     Таймер.ЗадатьОбработчикВМодулеФормы(Контекст,"Сооб()");

1. Я же говорю, что все недостатки Сервис::ЗакрытьВсеОкна остались, планирую исправить в будущем.

2. Написано же "наименование метода в форме", а не вызов Улыбка
Использовать так
     Таймер.ЗадатьОбработчикВМодулеФормы(Контекст,"Сооб");
т.е. без скобок Улыбка



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

Кстати пара вопросов:

1. объясни про ЗапуститьОбработчикВОбъекте, что за "объект"
2. и когда надо инициировать метод "запустить(Интервал)" ???
  

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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Встроенный класс Таймер
Ответ #16 - 02. Октября 2007 :: 12:58
Печать  
1) Этот метод может вызывать совершенно любой метод с количеством параметров 0 для любого контекста, в т.ч. и классы КОП.
Т.е. ему можешь передать объект своего класса и название метода в классе, и по событию таймера управление будет получать твой класс.

2) ИМХО тебя все проблема в том, что объект Таймер является локальным для процедуры, закинь его в переменные модуля формы и будешь получать сообщения Улыбка
А сейчас по выходе из процедуры Таймер автоматически удаляется Улыбка
  

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


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Встроенный класс Таймер
Ответ #17 - 02. Октября 2007 :: 13:05
Печать  
artbear писал(а) 02. Октября 2007 :: 12:58:
1) Этот метод может вызывать совершенно любой метод с количеством параметров 0 для любого контекста, в т.ч. и классы КОП.
Т.е. ему можешь передать объект своего класса и название метода в классе, и по событию таймера управление будет получать твой класс.

2) ИМХО тебя все проблема в том, что объект Таймер является локальным для процедуры, закинь его в переменные модуля формы и будешь получать сообщения Улыбка
А сейчас по выходе из процедуры Таймер автоматически удаляется Улыбка


Блин я и не подумал... однако надо спать почаще и отдыхать чуть подольше. Спасибо за помощь  Подмигивание
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Встроенный класс Таймер
Ответ #18 - 02. Октября 2007 :: 13:05
Печать  
Цитата:
1) Этот метод может вызывать совершенно любой метод с количеством параметров 0 для любого контекста, в т.ч. и классы КОП.
Т.е. ему можешь передать объект своего класса и название метода в классе, и по событию таймера управление будет получать твой класс.

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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Встроенный класс Таймер
Ответ #19 - 09. Октября 2007 :: 12:49
Печать  
vip писал(а) 02. Октября 2007 :: 13:05:
А в остальном это та же ОбработкаОжидания из FormEx.

Да, в принципе функционал почти совпадает с ОбработкойОжидания, но есть и отличия.

Кстати, у ОбработкиОжидания есть одна фича (баг?) - она работает только, когда активно главное окно 1С.
Если переключится на другую программу, то обработка ожидания работать не будет, что не всегда удобно.

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

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: Встроенный класс Таймер
Ответ #20 - 09. Октября 2007 :: 13:50
Печать  
artbear писал(а) 09. Октября 2007 :: 12:49:
vip писал(а) 02. Октября 2007 :: 13:05:
А в остальном это та же ОбработкаОжидания из FormEx.

Да, в принципе функционал почти совпадает с ОбработкойОжидания, но есть и отличия.

Кстати, у ОбработкиОжидания есть одна фича (баг?) - она работает только, когда активно главное окно 1С.
Если переключится на другую программу, то обработка ожидания работать не будет, что не всегда удобно.

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

Вот как раз у ОбработкиОжидания из FormEx нет такой фичи (бага) Улыбка
Она работает, даже когда главное окно 1С свернуто. А вот штатная ОбработкаОжидания нет (хотя насчет штатной может я и ошибаюсь).
  
Наверх
ICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Встроенный класс Таймер
Ответ #21 - 09. Октября 2007 :: 14:03
Печать  
Со штатной обработкой ожидания нет проблем, когда окно не активно.
Проблемы только с модальными окнами.

А с обработкой ожидания FormEx был вопрос: работает ли она в момент, когда выполняется проведение документа, к примеру.
Безопасно ли из обработчика завершать работу системы?

Но ответа я не помню, к сожалению.
  

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



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Встроенный класс Таймер
Ответ #22 - 09. Октября 2007 :: 14:39
Печать  
Цитата:
Со штатной обработкой ожидания нет проблем, когда окно не активно.

Да и класс Таймер работает, только что проверил. Так что Артур не прав.
Цитата:
А с обработкой ожидания FormEx был вопрос: работает ли она в момент, когда выполняется проведение документа, к примеру.
Безопасно ли из обработчика завершать работу системы?

А почему нет? Насколько я понимаю, процедура выполняется в idle-time.
У меня работают одновременно несколько таймеров с интервалом 1мс, выполняюшие роль своеобразных листенером с малым временем отклика. Проблем не заметил. Процессор от работы таймеров не грузится.
  
Наверх
ICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Встроенный класс Таймер
Ответ #23 - 09. Октября 2007 :: 15:40
Печать  
vip писал(а) 09. Октября 2007 :: 14:39:
Цитата:
Со штатной обработкой ожидания нет проблем, когда окно не активно.

Да и класс Таймер работает, только что проверил. Так что Артур не прав.
Цитата:
А с обработкой ожидания FormEx был вопрос: работает ли она в момент, когда выполняется проведение документа, к примеру.
Безопасно ли из обработчика завершать работу системы?

А почему нет? Насколько я понимаю, процедура выполняется в idle-time.
У меня работают одновременно несколько таймеров с интервалом 1мс, выполняюшие роль своеобразных листенером с малым временем отклика. Проблем не заметил. Процессор от работы таймеров не грузится.

Как на ваших версиях 1cpp и formex работает следующий тест.
Нет ли ошибок?

Херня какая-то с прикреплением файла.
Чуть позже попробую еще раз.
  

ERR_ONIDLE.RAR ( 13 KB | Загрузки )

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


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Встроенный класс Таймер
Ответ #24 - 09. Октября 2007 :: 16:07
Печать  
Получилось.
Форум не виноват.
  

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



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Встроенный класс Таймер
Ответ #25 - 09. Октября 2007 :: 16:23
Печать  
Цитата:
Как на ваших версиях 1cpp и formex работает следующий тест.
Нет ли ошибок?

Херовато отрабатывает Злой

ФорматнаяСтрока::_Флаг_к(Строка __знач=) : Индекс не входит в границы списка значений.
Возврат СокрЛ(Формат(мПараметры.ПолучитьЗначение(мНомерПараметра), "Ч15.0")) +__знач;
{КлассФорматнаяСтрока@MD(57) }

Описание ошибки: ФорматнаяСтрока::_Строка(Строка __стр=внутренний цикл к) : ФорматнаяСтрока::_Флаг_к(Строка __знач=) : Индекс не входит в границы списка значений.
Возврат СокрЛ(Формат(мПараметры.ПолучитьЗначение(мНомерПараметра), "Ч15.0")) +__знач;
{КлассФорматнаяСтрока@MD(57) }

Но тест драконовский какой-то Озадачен

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


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Встроенный класс Таймер
Ответ #26 - 09. Октября 2007 :: 16:25
Печать  
У меня то же самое.
И иногда обработка ожидания зависает (в смысле не останавливается в стопе, либо до стопа просто не доходит). Печаль

vip писал(а) 09. Октября 2007 :: 16:23:
Но тест драконовский какой-то Озадачен

обычный стресс-тест...
  

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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Встроенный класс Таймер
Ответ #27 - 10. Октября 2007 :: 08:48
Печать  
vip писал(а) 09. Октября 2007 :: 14:39:
Цитата:
Со штатной обработкой ожидания нет проблем, когда окно не активно.

Да и класс Таймер работает, только что проверил. Так что Артур не прав.

Да, ошибся, согласен.
Но ведь я как-то нарывался на подобное поведение.
Попробую поискать.

Да, был на 100% уверен, что ОбработкаОжидания и Таймер не будут работать, когда работает какая-то другая обработка, не отпуская проц.
Это здорово и дает нам некое подобие многопоточности Улыбка

ЗЫ из-за этой "многопоточности" тест kms и падает - т.к. идет обращение к переменной Ф в глобальнике из обработки ожидания и обработки цикла.
  

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: Встроенный класс Таймер
Ответ #28 - 10. Октября 2007 :: 08:49
Печать  
kms писал(а) 09. Октября 2007 :: 16:25:
И иногда обработка ожидания зависает (в смысле не останавливается в стопе, либо до стопа просто не доходит). Печаль

Я вообще Стоп не могу нажать, не реагирует Печаль

kms писал(а) 09. Октября 2007 :: 16:25:
vip писал(а) 09. Октября 2007 :: 16:23:
Но тест драконовский какой-то Озадачен

обычный стресс-тест...

Да, хороший тест Улыбка
  

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


I Love YaBB 2!

Сообщений: 788
Зарегистрирован: 22. Мая 2006
Re: Встроенный класс Таймер
Ответ #29 - 10. Октября 2007 :: 10:09
Печать  
artbear писал(а) 09. Октября 2007 :: 12:49:
vip писал(а) 02. Октября 2007 :: 13:05:
А в остальном это та же ОбработкаОжидания из FormEx.

Да, в принципе функционал почти совпадает с ОбработкойОжидания, но есть и отличия.

Кстати, у ОбработкиОжидания есть одна фича (баг?) - она работает только, когда активно главное окно 1С.
Если переключится на другую программу, то обработка ожидания работать не будет, что не всегда удобно.

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


При свернутом 1С все работает нормально. В смысле FE ОбработкаОжидания()
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 [2] 3 4 
ОтправитьПечать