Вверх ↑
Этот топик читают: Гость
Ответов: 655
Рейтинг: 18
#1: 2016-11-22 19:17:38 ЛС | профиль | цитата
Подскажите как реализовать следующее:

Есть GlobalVar 'data1' распихан в схеме в кол-ве 5шт, есть GlobalVar 'data2' в количестве 3шт.

Требуется чтобы изменив имя первого GlobalVar у остальных оно тоже сменилось.
т.е. 'data1' 5шт допустим переименовались в 'data11', а 3шт 'data2' переименовались в 'data22'

Есть может у кого модифицированный компонент или идеи?
карма: 0

0
vip
#1.1контекстная реклама от партнеров
Разработчик
Ответов: 4697
Рейтинг: 426
#2: 2016-11-22 19:35:53 ЛС | профиль | цитата
Где-то был компонент GlobalVarEx, который при изменении вызывает события у всех таких же глобальных переменных. Так вот просто заведите один такой GlobalVarEx с именем var_name, а событие изменения повесьте на doName у нужных GlobalVar. И не надо никаких других компонентов

Редактировалось 2 раз(а), последний 2016-11-22 19:53:22
карма: 10
1
Голосовали:Gunnman
Ответов: 655
Рейтинг: 18
#3: 2016-11-22 19:46:42 ЛС | профиль | цитата
Assasin, Спасибо! Есть несколько версий GlobalVarEx...ссылки которые нахожу битые, у вас случайно нет живой ссылки?
карма: 0

0
Разработчик
Ответов: 4697
Рейтинг: 426
#4: 2016-11-22 19:52:56 ЛС | профиль | цитата
Gunnman, вот этого не могу дать, я сам этим компонентом не пользовался. Может, тут мимо будут проходить те, кто пользовался (или даже сам автор ), они могут подсказать.
карма: 10
0
Ответов: 9906
Рейтинг: 351
#5: 2016-11-22 22:29:55 ЛС | профиль | цитата
Gunnman писал(а):
Есть несколько версий GlobalVarEx...ссылки которые нахожу битые, у вас случайно нет живой ссылки?

http://forum.hiasm.com/getfile/37981

Редактировалось 2 раз(а), последний 2017-01-08 08:29:23
карма: 9

2
Голосовали:Konst, Gunnman
Ответов: 1328
Рейтинг: 69
#6: 2016-11-29 01:44:22 ЛС | профиль | цитата
Опечатка в описании SkipOwn=При =True, реакция onValue на "свой" метод doValue - пропускается, а есть реВкция только на чужой|14|1|True,False

Редактировалось 1 раз(а), последний 2016-11-29 01:44:46
карма: 2

0
Ответов: 9906
Рейтинг: 351
#7: 2016-11-29 16:21:46 ЛС | профиль | цитата
Как бы мне это известно...
http://forum.hiasm.com/post/259995
Но, все равно - спасибо
карма: 9

0
Ответов: 9906
Рейтинг: 351
#8: 2017-01-03 16:49:01 ЛС | профиль | цитата
Решил таки обновить GlobalVarEx ...
(GlobalVarEx)

Причины: некорректность использования метода doName. Данные для старого имени НЕ УБИВАЮТСЯ. В штатном GlobalVar, кстати говоря - тоже.
Для того, чтобы это делать корректно, нужен некий счетчик ссылок. А в Ex-е это уже как бы есть - убивать можно, если "список оповещения" становится пустым. Т.е. - малой кровью.
Таковую утечку памяти (как и ее отсутствие) можно посмотреть в такой схеме:
Add(CheckBox,13967371,91,105)
{
Left=21
Top=21
Caption="RUN"
link(onCheck,5922359:doEvent,[])
}
Add(Timer,10709575,210,98)
{
Enable=1
link(onTimer,14661053:doFor,[])
}
Add(IndexToChanel,5922359,147,105)
{
link(onEvent1,10709575:doStop,[])
link(onEvent2,10709575:doTimer,[(186,118)(186,104)])
}
Add(For,14661053,273,98)
{
End=10000
link(onEvent,1089149:doNext,[])
}
Add(CounterEx,1089149,336,98)
{
Max=1000000000
link(onNext,7518706:doName,[])
}
Add(GlobalVar,7518706,399,91)
{
Point(doName)
}

Предупреждение: использовать GlobalVar и GlobalVarEx с одним именем НИЗЯ. Присвоение в GlobalVar убивает "список оповещения" в GlobalVarEx. И теперь еще и наоборот, после уничтожения переменной с пустым "списком оповещения" в GlobalVarEx - GlobalVar с этим именем будет тупо падать (AV)

В общем, я предупредил

Редактировалось 6 раз(а), последний 2017-01-08 08:26:48
карма: 9

0
Ответов: 655
Рейтинг: 18
#9: 2017-01-08 04:45:51 ЛС | профиль | цитата
Galkov, прошу подтвердить\опровергнуть баг: при skipown = false , на onValue выдается 2 события, при true 1...
В предыдущей версии компонента все было гладко (при false 1 событие на onValue, при true - 0)
карма: 0

1
Голосовали:Galkov
Ответов: 9906
Рейтинг: 351
#10: 2017-01-08 08:23:55 ЛС | профиль | цитата
Да, действительно. Обновил (аттач в этом посте)

Не совсем правильно дело пошло...
Надо было сразу заводить свой onNotify, а не пришпиливаться к событию onValue, который завел nesco
И не заморачиваться со всякими SkipOwn
карма: 9

2
файлы: 1GlobalVarEx.rar [1.5KB] [579]
Голосовали:Gunnman, Konst
10
Сообщение
...
Прикрепленные файлы
(файлы не залиты)