|
ПодключитьОбработчикОжидания не выполняется, если вызван ПодключитьОбработчикОжи | ☑ | ||
---|---|---|---|---|
0
rowflag
21.11.12
✎
15:36
|
Если подряд вызываются Тест1() с интервалом, меньшим, чем 8 секунд, то вызов УбратьЦветПоследнейСтроки() не происходит, пока не пройдет 8 секунд после последнего вызова Тест().
Как быть? &НаКлиенте Процедура УбратьЦветПоследнейСтроки() Для каждого Стр Из СообщенияТЗ Цикл Стр.Имя = "----"; КонецЦикла; КонецПроцедуры &НаКлиенте Процедура Тест1() СтрокаСоощения = СообщенияТЗ.Добавить(); СтрокаСоощения.Имя = "абвг"; ПодключитьОбработчикОжидания("УбратьЦветПоследнейСтроки",8,Истина); КонецПроцедуры |
|||
1
hhhh
21.11.12
✎
16:01
|
(0) меньше секунд задать. Почему эта магическая цифра 8?
|
|||
2
rowflag
21.11.12
✎
16:04
|
(1) Просто поставил 8 секунд задержку. Хочу чтобы строка меняла цвет через 8 секунд.
|
|||
3
rowflag
21.11.12
✎
16:05
|
(1) Как же менять цвет строк независимо друг от друга с задержкой?
|
|||
4
НЕА123
21.11.12
✎
16:08
|
как-то типа поставить 1сек, а в УбратьЦветПоследнейСтроки() проверка на 8 сек.
не? |
|||
5
Reset
21.11.12
✎
16:09
|
(0) Поведение логично, каждое следующее подключение сбрасывает таймер.
|
|||
6
НЕА123
21.11.12
✎
16:10
|
можно попробовать отключить-подключить.
|
|||
7
Reset
21.11.12
✎
16:10
|
(6) Так это неявно и происходит
|
|||
8
rowflag
21.11.12
✎
16:10
|
(5) понимаю что логично. Как задачу решить свою тогда?
|
|||
9
Reset
21.11.12
✎
16:11
|
(8) Описать ее.
|
|||
10
Reset
21.11.12
✎
16:11
|
+ (8) пока неясно, какое поведение нужно
|
|||
11
rowflag
21.11.12
✎
16:11
|
Как же менять цвет строк независимо друг от друга с задержкой 8 секунд?
|
|||
12
Reset
21.11.12
✎
16:12
|
(11) Т.е. ты хочешь независимые обработчики на кждую строку?
|
|||
13
НЕА123
21.11.12
✎
16:12
|
&НаКлиенте
Процедура Тест1() СтрокаСоощения = СообщенияТЗ.Добавить(); СтрокаСоощения.Имя = "абвг"; УбратьЦветПоследнейСтроки(); ПодключитьОбработчикОжидания("УбратьЦветПоследнейСтроки",8,Истина); КонецПроцедуры |
|||
14
rowflag
21.11.12
✎
16:12
|
Строка появилась и через 8 секунд поменяла свой цвет. Независимо от того, что в течении этих 8 секунд появились еще 10 строк.
|
|||
15
Reset
21.11.12
✎
16:12
|
+(12) точнее, на каждый вызов Тест1()
|
|||
16
Reset
21.11.12
✎
16:14
|
(14) Сделать обработчик с периодичностью 1 сек и вести таблицу строк со счетчиками и ссылками на нужжные строки
|
|||
17
Reset
21.11.12
✎
16:15
|
+(16) каждую секунду перебирать таблицу, перекрашивать строки с истекшим счетчиком, удалять из таблицы
|
|||
18
rowflag
21.11.12
✎
16:15
|
(13) не понял..
|
|||
19
Reset
21.11.12
✎
16:16
|
(18) Он дал решения для другой задачи. "При появлении новой строки немедленно перекрасить предыдущую, а для новой запустить таймер"
|
|||
20
rowflag
21.11.12
✎
16:16
|
(12) Возможно. Я хочу чтобы строка, после появления через 8 сек. меняла цвет.
|
|||
21
Reset
21.11.12
✎
16:17
|
(12) (20) Незавимысе обработчики коряво, придется наплодить дофуя процедур. Делай кеш-таблицу
|
|||
22
rowflag
21.11.12
✎
16:17
|
(19) Понял. Не подходит.
|
|||
23
rowflag
21.11.12
✎
16:17
|
(21) это примерно хоть как?
|
|||
24
Reset
21.11.12
✎
16:19
|
(23) Не хочу давать корявый пример.
процедура УбратьЦветПоследнейСтроки1 процедура УбратьЦветПоследнейСтроки2 процедура УбратьЦветПоследнейСтроки3 при подключении циклически подключать УбратьЦветПоследнейСтроки+N Коряво это |
|||
25
rowflag
21.11.12
✎
16:19
|
(21) как в (16)?
|
|||
26
Reset
21.11.12
✎
16:19
|
(25) угу, я бы так делал наверное
|
|||
27
vmv
21.11.12
✎
16:20
|
(0) Предлагаю написать письмо чтобы быстрее убрали ОбработчикиОжидания из поставки платформы, ибо соблазн для г-кода
|
|||
28
rowflag
21.11.12
✎
16:20
|
(23) а если количество строк заранее неизвестно, и может равно быть 10000?
|
|||
29
rowflag
21.11.12
✎
16:20
|
(28) к (24)
|
|||
30
Reset
21.11.12
✎
16:21
|
(28) Потому и коряво
|
|||
31
rowflag
21.11.12
✎
16:21
|
(27) в чем соблазн то?
|
|||
32
Serginio1
21.11.12
✎
16:21
|
(0) А зачем подряд вызывать Тест1() а не УбратьЦветПоследнейСтроки()
? |
|||
33
rowflag
21.11.12
✎
16:22
|
(26) ССССППППААААССССИИИИББББо!
|
|||
34
rowflag
21.11.12
✎
16:23
|
(32) мне не надо Тест1() вызывать подряд. Мне надо строки создавать, и менять цвет созданной, через 8 минут после ее появления.
|
|||
35
НЕА123
21.11.12
✎
16:24
|
как всегда, ответ в посте (1)
|
|||
36
rowflag
21.11.12
✎
16:26
|
(16) можно чтобы этот обработчик не вызывался если все строки уже поменяли цвет, а новые еще не появились? (чтобы не грузить систему)
|
|||
37
rowflag
21.11.12
✎
16:27
|
?
|
|||
38
Reset
21.11.12
✎
16:29
|
(36) Я не думаю что обработчик, проверяющий
СтрокиКОкраске.Количество()>0 сколько-существенно нагрузит. Ну можно, если строк нет (кончились), отключать обработчик, а при добавлении подключать снова, но только если текущий список пуст |
|||
39
sidalexsandr
21.11.12
✎
16:30
|
(34) Можно с помощью ОбработчикаОжидания получить Системное время компьютера в момент ввода новой строки.
8 минут - времени ввода текущей строки - время ввода предыдущей строки. |
|||
40
rowflag
21.11.12
✎
16:33
|
(39) Можно чуть более подробно алгоритм описать?
|
|||
41
Reset
21.11.12
✎
16:35
|
Вот рыба к (38):
Проц ДобавитьСообщение() Если КОкраске().Кол-во()=0 тогда ПодключитьОбрОжидания(блабла,1); КонецЕсли; Стр=КОкраске().Добавить(); Стр.Строка=ДобавленнаяСтрока; Стр.ВремяДобавления=ТекущаяДата(); КонецПроц Проц обработчикТаймера() Если КОкраске.Кол-во()=0 тогда ОтключитьОбрОжидания(блабла); Иначе Для каждого окрстр из КОкраске цикл Если Текущаядата()-окрстр>8 тогда // перекрасить строку окрстр.Строка // удалить окрстр из КОкраске КонецЕсли; КонецЕсли; |
|||
42
Reset
21.11.12
✎
16:36
|
*Если Текущаядата()-окрстр.ВремяДобавления>8 тогда
|
|||
43
rowflag
21.11.12
✎
16:36
|
(16)(38) Можно тоже чуть более подробнее алгоритм описать?
|
|||
44
Reset
21.11.12
✎
16:36
|
(43) Уже
|
|||
45
rowflag
21.11.12
✎
16:37
|
(А что такое РЫБА?)
|
|||
46
Reset
21.11.12
✎
16:37
|
(45) Предварительный грубый набросок, скелет
|
|||
47
vmv
21.11.12
✎
16:37
|
(46) свинья хуже поверь
|
|||
48
rowflag
21.11.12
✎
16:38
|
(44) У Вас же свой был алгоритм с кэш-таблицей? (в (41) он?)
|
|||
49
rowflag
21.11.12
✎
16:39
|
(47) Что такое Свинья?)
|
|||
50
Reset
21.11.12
✎
16:39
|
(48) Да, таблица КОкраске с полями Строка - как-то указывает на строку для перекастки и ВремяДобавления, по которому позже определяем прошло ли 8 сек
|
|||
51
rowflag
21.11.12
✎
16:41
|
(50) Понял. Просто подумал что это к (39) (ошибся). Спасиббббо!!
|
|||
52
rowflag
21.11.12
✎
16:41
|
(последний вопрос. Что такое свинья??)
|
|||
53
Reset
21.11.12
✎
16:42
|
Это животное такое. Человеки его разводят и едят потом
|
|||
54
vmv
21.11.12
✎
16:44
|
(52) Жирный кусок, мясо)
|
|||
55
rowflag
21.11.12
✎
16:55
|
(54) Как код может быть Жирным куском?
|
|||
56
vmv
21.11.12
✎
17:02
|
(55) когда ты это поймешь будет уже поздно - запах тухлой рыбы доканает)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |