CriDos писал(а):
я про "в момент плавного изменения формы можно было моментально обратить действие"Не вижу надобности, я бы вообще запретил реверс до полного достижения конца операции. Маразм это -- клацать кнопкой в момент работы
------------ Дoбавленo в 01.51:
Хотя, может, вот так пойдет
Add(MainForm,16406168,644,259)
{
Width=494
Height=76
Caption="Плавное увеличение высоты формы"
BorderStyle=4
Position=1
Point(doHeight)
Point(Height)
link(onCreate,4085703:doValue,[(687,279)(687,234)(534,234)(534,272)])
}
Add(Button,2994254,399,259)
{
Left=220
Top=15
TabOrder=-1
Caption="Открыть"
Point(doCaption)
link(onClick,3247727:doEvent1,[])
}
Add(Timer,7540667,483,343)
{
Interval=10
Enable=1
Point(onStop)
link(onTimer,14326330:doCalc,[])
}
Add(MathParse,14326330,532,343)
{
DataCount=3
MathStr="(%2 <= 250) * (%1 > 0) * (%2 + 5) + (%2 >= %3) * (%1 <= 0) * (%2 - 5) "
link(onResult,9264180:doCase,[])
link(X1,12277137:State,[(538,320)(489,320)])
link(X2,10754206:Var1,[(545,320)])
link(X3,4085703:Value,[])
}
Add(Switch,12277137,483,266)
{
DataOn=Integer(1)
DataOff=Integer(0)
Point(State)
link(onSwitch,7540667:doTimer,[(527,272)(527,234)(330,234)(330,349)])
}
Add(Switch,9901326,350,259)
{
DataOn=String(Закрыть)
DataOff=String(Открыть)
link(onSwitch,2994254:doCaption,[])
}
Add(Memory,4085703,546,266)
{
Point(Data)
link(Data,10754206:Var3,[(552,254)(594,254)])
}
Add(GetDataEx,10754206,588,315)
{
Angle=1
link(Data,16406168:Height,[(650,320)])
}
Add(Case,9264180,581,343)
{
Value=Integer(0)
link(onNextCase,16406168:doHeight,[(631,349)(631,293)])
link(onTrue,7540667:doStop,[(631,356)(631,384)(469,384)(469,356)])
}
Add(Hub,3247727,448,259)
{
link(onEvent1,9901326:doSwitch,[(474,265)(474,251)(338,251)(338,265)])
link(onEvent2,12277137:doSwitch,[])
}
А если написать длиннее формулу, то можно еще упростить
Add(MainForm,16406168,623,259)
{
Width=494
Height=76
Caption="Плавное увеличение высоты формы"
BorderStyle=4
Position=1
Point(doHeight)
Point(Height)
link(onCreate,4085703:doValue,[(666,279)(666,234)(534,234)(534,272)])
}
Add(Button,2994254,399,259)
{
Left=220
Top=15
TabOrder=-1
Caption="Открыть"
Point(doCaption)
link(onClick,3247727:doEvent1,[])
}
Add(Timer,7540667,483,343)
{
Interval=10
Enable=1
AutoStop=200
Point(onStop)
link(onTimer,14326330:doCalc,[])
}
Add(MathParse,14326330,532,343)
{
DataCount=3
MathStr="(%2 + 5 <= 250) * (%1 > 0) * (%2 + 5) + (%2 - 5 >= %3) * (%1 <= 0) * (%2 - 5) + (%2 + 5 > 250) * (%1 > 0) * 250 + (%2 - 5 < %3) * (%1 <= 0) * %3"
link(onResult,16406168:doHeight,[(604,349)(604,293)])
link(X1,12277137:State,[(538,320)(489,320)])
link(X2,10754206:Var1,[(545,320)])
link(X3,4085703:Value,[])
}
Add(Switch,12277137,483,266)
{
DataOn=Integer(1)
DataOff=Integer(0)
Point(State)
link(onSwitch,7540667:doTimer,[(527,272)(527,234)(330,234)(330,349)])
}
Add(Switch,9901326,350,259)
{
DataOn=String(Закрыть)
DataOff=String(Открыть)
link(onSwitch,2994254:doCaption,[])
}
Add(Memory,4085703,546,266)
{
Point(Data)
link(Data,10754206:Var3,[(552,254)(594,254)])
}
Add(GetDataEx,10754206,588,315)
{
Angle=1
link(Data,16406168:Height,[(629,320)])
}
Add(Hub,3247727,448,259)
{
link(onEvent1,9901326:doSwitch,[(474,265)(474,251)(338,251)(338,265)])
link(onEvent2,12277137:doSwitch,[])
}