Вверх ↑
Этот топик читают: Гость
Ответов: 44
Рейтинг: 0
#1: 2019-05-23 16:03:05 ЛС | профиль | цитата
Маленькая схемка работы компонента CounterEX.
При работе счетчика от "меньшего" к "большему", отчет начинается от свойства MIN, даже если на эту точку подается другое число. А со второго круга, работает как положено.

В обратную сторону, от MAX к MIN работает, как нужно.

Make(delphi)
ver(4.05 build 186)
Add(MainForm,2953706,21,105)
{
Width=394
Height=132
Position=1
}
Add(CounterEx,407575,301,119)
{
Max=20
Point(doMin)
link(onNext,10093478:doText,[])
}
Add(Button,8824855,147,126)
{
Left=25
Top=20
Data=Integer(10)
link(onClick,16132374:doEvent1,[])
}
Add(CounterEx,13479705,301,182)
{
Min=10
Direct=1
Point(doMax)
link(onNext,6438681:doText,[])
}
Add(Button,464184,133,189)
{
Left=25
Top=45
Data=Integer(20)
link(onClick,8342241:doEvent1,[])
}
Add(Timer,9165432,245,140)
{
Interval=500
Enable=1
link(onTimer,407575:doNext,[(286,146)(286,125)])
}
Add(Hub,16132374,210,126)
{
link(onEvent1,407575:doMin,[])
link(onEvent2,9165432:doTimer,[(234,139)(234,146)])
}
Add(Edit,10093478,371,119)
{
Left=100
Top=20
Text=""
}
Add(Timer,10815945,238,196)
{
Interval=500
Enable=1
link(onTimer,13479705:doNext,[(286,202)(286,188)])
}
Add(Edit,6438681,364,182)
{
Left=100
Top=45
Text=""
}
Add(Hub,8342241,196,189)
{
link(onEvent1,13479705:doMax,[])
link(onEvent2,10815945:doTimer,[])
}
Add(Label,6708170,462,126)
{
Left=160
Top=25
Width=206
Height=17
Caption="От MIN к MAX (работает с ошибкой)"
}
Add(Label,1109610,462,175)
{
Left=160
Top=50
Width=178
Height=17
Caption="От MAX к MIN (работает как надо)"
}

Редактировалось 5 раз(а), последний 2019-05-23 16:18:28
карма: 0

0
Разработчик
Ответов: 26149
Рейтинг: 2127
#2: 2019-05-23 16:32:49 ЛС | профиль | цитата
BaseD писал(а):
В обратную сторону, от MIN к MAX работает, как нужно.

Работает точно так же, у тебя в схеме Max=20 и устанавливаешь ты тоже 20. Попробуй поставить Max=10, а устанавливать 20, будет работать от 10. Для актуализации данных необходимо применить doReset

Схема

Add(MainForm,9590198,287,168)
{
Width=394
Height=132
Position=1
}
Add(CounterEx,407575,490,210)
{
Max=20
Point(doMin)
Point(doReset)
link(onNext,10093478:doText,[])
}
Add(Button,8824855,287,217)
{
Left=25
Top=20
Data=Integer(10)
link(onClick,16132374:doEvent1,[])
}
Add(CounterEx,13479705,490,273)
{
Min=10
Max=10
Direct=1
Point(doMax)
Point(doReset)
link(onNext,6438681:doText,[])
}
Add(Button,464184,287,280)
{
Left=25
Top=45
Data=Integer(20)
link(onClick,8342241:doEvent1,[])
}
Add(Timer,9165432,399,238)
{
Interval=500
Enable=1
link(onTimer,407575:doNext,[(438,244)(438,216)])
}
Add(Hub,16132374,350,217)
{
OutCount=3
link(onEvent1,407575:doMin,[])
link(onEvent2,407575:doReset,[])
link(onEvent3,9165432:doTimer,[(389,237)(389,244)])
}
Add(Edit,10093478,553,210)
{
Left=100
Top=20
Text=""
}
Add(Timer,10815945,399,301)
{
Interval=500
Enable=1
link(onTimer,13479705:doNext,[(440,307)(440,279)])
}
Add(Edit,6438681,553,273)
{
Left=100
Top=45
Text=""
}
Add(Hub,8342241,350,280)
{
OutCount=3
link(onEvent1,13479705:doMax,[])
link(onEvent2,13479705:doReset,[])
link(onEvent3,10815945:doTimer,[(382,300)(382,307)])
}
Add(Label,6708170,651,210)
{
Left=160
Top=25
Width=178
Height=17
Caption="От MIN к MAX (работает как надо)"
}
Add(Label,1109610,651,273)
{
Left=160
Top=50
Width=178
Height=17
Caption="От MAX к MIN (работает как надо)"
}


Кстати, старый счетчик работал точно так же

Редактировалось 1 раз(а), последний 2019-05-23 16:33:14
карма: 22

0
Ответов: 44
Рейтинг: 0
#3: 2019-05-23 16:44:50 ЛС | профиль | цитата
nesco, с doReset работает, если отключить, то перестанет.
Стартовать счетчик должен с 10, так как, на точку MIN "приходит" 10 с кнопки, а стартует с единицы (в свойствах MIN стоит 0).
В обратном порядке (от MAX к MIN) отчет начинается с того значения, которое передается в потоке на точку MAX (в свойствах можно хоть 100 выставить).

Ну да ладно, с подключенным doReset работает.
карма: 0

0
3
Сообщение
...
Прикрепленные файлы
(файлы не залиты)