Дело в том, что я создаю при помощи динамических контейнеров одни и те же схемы, соответственно, каждая схема внутри каждого контейнера работает независимо от всех остальных. Внутренние значения в конкретном контейнере постоянно меняются из разных мест его же схемы, и чтобы не создавать пересекающие связи, я применяю Memory + LineBreakEx или LineBreak. Но в таком случае их количество начинает сбивать столку. Остаётся применение GlobalVar, но он действует глобально, а значит его применение неоправдано.
Вот тут-то я и подумал о локальной переменной типа LocalVar, которая будет действительна только внутри конкретного контейнера и нигде больше.
У кого какие будут мнения?
Add(MainForm,14969659,252,98)
{
Width=447
Height=224
link(onCreate,4974307:doFor,[])
}
Add(MultiElementEx,5644722,539,119)
{
@Hint=#4:Room|
Mode=1
link(onAdd,2745433:doValue,[])
}
BEGIN_SDK
Add(EditMultiEx,15134340,28,21)
{
WorkCount=#5:##add|8:##select|
EventCount=#5:onAdd|
VarCount=#7:##count|
Width=1259
Height=753
Point(##add)
Point(##select)
Point(##count)
link(##add,14837716:doSeparateMT,[(55,27)(55,76)])
link(##select,2992998:doEvent1,[(49,34)(49,650)])
}
Add(LineBreakEx,2555678,1176,112)
{
@Color=255
Caption="Var1"
Type=3
link(_Data,1310326:Value,[])
}
Add(LineBreakEx,10935522,1113,63)
{
@Color=255
Caption="Var1"
Type=1
link(OnEvent,1310326:doValue,[])
}
Add(MT_MultiData,14837716,70,70)
{
Count=9
link(onData1,3872419:doWork,[])
link(onData2,16712019:doWork,[])
link(onData3,13168607:doWork,[])
link(onData4,5277928:doWork,[])
link(onData5,6564428:doWork,[])
link(onData6,1602821:doWork,[])
link(onData7,10973952:doWork,[])
link(onData8,11304885:doWork,[])
link(onData9,5895896:doValue,[])
}
Add(LineBreakEx,3872419,287,70)
{
@Color=255
Caption="Var1"
}
Add(LineBreakEx,13168607,175,84)
{
@Color=255
Caption="Var3"
}
Add(LineBreakEx,16712019,231,77)
{
@Color=255
Caption="Var2"
}
Add(LineBreakEx,5277928,112,91)
{
@Color=255
Caption="Var4"
}
Add(Hub,2992998,77,644)
{
OutCount=9
link(onEvent1,666656:doEvent1,[(140,650)(140,174)])
link(onEvent2,7576226:doEvent1,[(140,657)(140,244)])
link(onEvent3,9819056:doEvent1,[(140,664)(140,314)])
link(onEvent4,4477834:doEvent1,[(140,671)(140,384)])
link(onEvent5,3280817:doEvent1,[(140,678)(140,461)])
link(onEvent6,16153829:doEvent1,[(140,685)(140,531)])
link(onEvent7,4665647:doEvent1,[(140,692)(140,601)])
link(onEvent8,13279734:doEvent1,[(140,699)(140,671)])
link(onEvent9,1536185:doAdd,[])
}
Add(Math,4898375,189,168)
{
Op2=2
link(onResult,3972653:doWork,[])
link(Op1,15261828:getVar,[])
}
Add(LineBreakEx,15261828,189,140)
{
@Color=255
Caption="Var1"
Type=2
}
Add(LineBreakEx,3972653,231,168)
{
@Color=255
Caption="Var1"
}
Add(Math,12979305,189,238)
{
Op2=2
link(onResult,1162813:doWork,[])
link(Op1,2127769:getVar,[])
}
Add(LineBreakEx,2127769,189,210)
{
@Color=255
Caption="Var2"
Type=2
}
Add(LineBreakEx,1162813,231,238)
{
@Color=255
Caption="Var2"
}
Add(Math,6215926,189,308)
{
Op2=2
link(onResult,9098760:doWork,[])
link(Op1,10096168:getVar,[])
}
Add(LineBreakEx,10096168,189,280)
{
@Color=255
Caption="Var3"
Type=2
}
Add(LineBreakEx,9098760,231,308)
{
@Color=255
Caption="Var3"
}
Add(Math,3408603,189,378)
{
Op2=2
link(onResult,16134008:doWork,[])
link(Op1,12324412:getVar,[])
}
Add(LineBreakEx,12324412,189,350)
{
@Color=255
Caption="Var4"
Type=2
}
Add(LineBreakEx,16134008,231,378)
{
@Color=255
Caption="Var4"
}
Add(Memory,1310326,1176,63)
{
@Color=5614335
}
Add(LineBreakEx,1207157,1134,140)
{
@Color=255
Caption="Var2"
Type=3
link(_Data,5671208:Value,[])
}
Add(LineBreakEx,5964162,1071,91)
{
@Color=255
Caption="Var2"
Type=1
link(OnEvent,5671208:doValue,[])
}
Add(Memory,5671208,1134,91)
{
@Color=5614335
}
Add(LineBreakEx,4898395,1085,168)
{
@Color=255
Caption="Var3"
Type=3
link(_Data,13283508:Value,[])
}
Add(LineBreakEx,10117916,1022,119)
{
@Color=255
Caption="Var3"
Type=1
link(OnEvent,13283508:doValue,[])
}
Add(Memory,13283508,1085,119)
{
@Color=5614335
}
Add(LineBreakEx,13103569,1036,196)
{
@Color=255
Caption="Var4"
Type=3
link(_Data,10761709:Value,[])
}
Add(LineBreakEx,10189077,973,147)
{
@Color=255
Caption="Var4"
Type=1
link(OnEvent,10761709:doValue,[])
}
Add(Memory,10761709,1036,147)
{
@Color=5614335
}
Add(MT_AddData,1536185,826,700)
{
Count=9
InputMT=3
PColor(Data9,11184640)
link(onAdd,15134340:onAdd,[(1240,706)(1240,27)])
link(Data1,13736857:getVar,[])
link(Data2,8133232:getVar,[])
link(Data3,7515876:getVar,[])
link(Data4,1648765:getVar,[])
link(Data5,5769223:getVar,[])
link(Data6,7594005:getVar,[])
link(Data7,6148255:getVar,[])
link(Data8,15477923:getVar,[])
link(Data9,5895896:Value,[(888,404)(769,404)])
}
Add(LineBreakEx,13736857,826,525)
{
@Color=255
Caption="Var1"
Type=2
}
Add(LineBreakEx,8133232,833,546)
{
@Color=255
Caption="Var2"
Type=2
}
Add(LineBreakEx,7515876,840,567)
{
@Color=255
Caption="Var3"
Type=2
}
Add(LineBreakEx,1648765,847,588)
{
@Color=255
Caption="Var4"
Type=2
}
Add(Math,1882398,189,455)
{
Op2=2
link(onResult,7997:doWork,[])
link(Op1,3346296:getVar,[])
}
Add(LineBreakEx,3346296,189,427)
{
@Color=255
Caption="Var5"
Type=2
}
Add(LineBreakEx,7997,231,455)
{
@Color=255
Caption="Var5"
}
Add(Math,7757356,182,525)
{
Op2=2
link(onResult,5657209:doWork,[])
link(Op1,7903547:getVar,[])
}
Add(LineBreakEx,7903547,182,497)
{
@Color=255
Caption="Var6"
Type=2
}
Add(LineBreakEx,5657209,231,525)
{
@Color=255
Caption="Var6"
}
Add(Math,11115125,182,595)
{
Op2=2
link(onResult,15958796:doWork,[])
link(Op1,15491891:getVar,[])
}
Add(LineBreakEx,15491891,182,567)
{
@Color=255
Caption="Var7"
Type=2
}
Add(LineBreakEx,15958796,231,595)
{
@Color=255
Caption="Var7"
}
Add(Math,12039936,182,665)
{
Op2=2
link(onResult,4374589:doWork,[])
link(Op1,16544327:getVar,[])
}
Add(LineBreakEx,16544327,182,637)
{
@Color=255
Caption="Var8"
Type=2
}
Add(LineBreakEx,4374589,231,665)
{
@Color=255
Caption="Var8"
}
Add(LineBreakEx,4968942,994,224)
{
@Color=255
Caption="Var5"
Type=3
link(_Data,2224815:Value,[])
}
Add(LineBreakEx,685528,931,175)
{
@Color=255
Caption="Var5"
Type=1
link(OnEvent,2224815:doValue,[])
}
Add(Memory,2224815,994,175)
{
@Color=5614335
}
Add(LineBreakEx,5628214,952,252)
{
@Color=255
Caption="Var6"
Type=3
link(_Data,13498638:Value,[])
}
Add(LineBreakEx,13980028,889,203)
{
@Color=255
Caption="Var6"
Type=1
link(OnEvent,13498638:doValue,[])
}
Add(Memory,13498638,952,203)
{
@Color=5614335
}
Add(LineBreakEx,10837482,903,280)
{
@Color=255
Caption="Var7"
Type=3
link(_Data,3070354:Value,[])
}
Add(LineBreakEx,15008074,840,231)
{
@Color=255
Caption="Var7"
Type=1
link(OnEvent,3070354:doValue,[])
}
Add(Memory,3070354,903,231)
{
@Color=5614335
}
Add(LineBreakEx,4843500,854,308)
{
@Color=255
Caption="Var8"
Type=3
link(_Data,1005286:Value,[])
}
Add(LineBreakEx,9447538,791,259)
{
@Color=255
Caption="Var8"
Type=1
link(OnEvent,1005286:doValue,[])
}
Add(Memory,1005286,854,259)
{
@Color=5614335
}
Add(LineBreakEx,6564428,287,98)
{
@Color=255
Caption="Var5"
}
Add(LineBreakEx,10973952,175,112)
{
@Color=255
Caption="Var7"
}
Add(LineBreakEx,1602821,231,105)
{
@Color=255
Caption="Var6"
}
Add(LineBreakEx,11304885,112,119)
{
@Color=255
Caption="Var8"
}
Add(LineBreakEx,5769223,854,609)
{
@Color=255
Caption="Var5"
Type=2
}
Add(LineBreakEx,7594005,861,630)
{
@Color=255
Caption="Var6"
Type=2
}
Add(LineBreakEx,6148255,868,651)
{
@Color=255
Caption="Var7"
Type=2
}
Add(LineBreakEx,15477923,875,672)
{
@Color=255
Caption="Var8"
Type=2
}
Add(Memory,5895896,763,126)
{
Default=Integer(0)
}
Add(Math,12220216,476,175)
{
OpType=1
Op2=2
link(onResult,14166391:doWork,[])
link(Op1,7494180:getVar,[])
}
Add(LineBreakEx,7494180,476,147)
{
@Color=255
Caption="Var1"
Type=2
}
Add(LineBreakEx,14166391,518,175)
{
@Color=255
Caption="Var1"
}
Add(Math,5892505,476,245)
{
OpType=1
Op2=2
link(onResult,5373674:doWork,[])
link(Op1,2767830:getVar,[])
}
Add(LineBreakEx,2767830,476,217)
{
@Color=255
Caption="Var2"
Type=2
}
Add(LineBreakEx,5373674,518,245)
{
@Color=255
Caption="Var2"
}
Add(Math,3745219,476,315)
{
OpType=1
Op2=2
link(onResult,16743715:doWork,[])
link(Op1,1469765:getVar,[])
}
Add(LineBreakEx,1469765,476,287)
{
@Color=255
Caption="Var3"
Type=2
}
Add(LineBreakEx,16743715,518,315)
{
@Color=255
Caption="Var3"
}
Add(Math,15822876,476,385)
{
OpType=1
Op2=2
link(onResult,3412355:doWork,[])
link(Op1,2289964:getVar,[])
}
Add(LineBreakEx,2289964,476,357)
{
@Color=255
Caption="Var4"
Type=2
}
Add(LineBreakEx,3412355,518,385)
{
@Color=255
Caption="Var4"
}
Add(Math,1559115,476,455)
{
OpType=1
Op2=2
link(onResult,15951615:doWork,[])
link(Op1,14100886:getVar,[])
}
Add(LineBreakEx,14100886,476,427)
{
@Color=255
Caption="Var5"
Type=2
}
Add(LineBreakEx,15951615,518,455)
{
@Color=255
Caption="Var5"
}
Add(Math,16469712,476,525)
{
OpType=1
Op2=2
link(onResult,14045044:doWork,[])
link(Op1,14511547:getVar,[])
}
Add(LineBreakEx,14511547,476,497)
{
@Color=255
Caption="Var6"
Type=2
}
Add(LineBreakEx,14045044,525,525)
{
@Color=255
Caption="Var6"
}
Add(Math,4762567,476,602)
{
OpType=1
Op2=2
link(onResult,11786526:doWork,[])
link(Op1,12258279:getVar,[])
}
Add(LineBreakEx,12258279,476,574)
{
@Color=255
Caption="Var7"
Type=2
}
Add(LineBreakEx,11786526,525,602)
{
@Color=255
Caption="Var7"
}
Add(Math,14469651,476,672)
{
OpType=1
Op2=2
link(onResult,4807108:doWork,[])
link(Op1,7846224:getVar,[])
}
Add(LineBreakEx,7846224,476,644)
{
@Color=255
Caption="Var8"
Type=2
}
Add(LineBreakEx,4807108,525,672)
{
@Color=255
Caption="Var8"
}
Add(Math,7033184,623,182)
{
Op2=2
link(onResult,12069542:doWork,[])
link(Op1,15049230:getVar,[])
}
Add(LineBreakEx,15049230,623,154)
{
@Color=255
Caption="Var1"
Type=2
}
Add(LineBreakEx,12069542,665,182)
{
@Color=255
Caption="Var1"
}
Add(Math,946084,623,252)
{
Op2=2
link(onResult,7052353:doWork,[])
link(Op1,6806189:getVar,[])
}
Add(LineBreakEx,6806189,623,224)
{
@Color=255
Caption="Var2"
Type=2
}
Add(LineBreakEx,7052353,665,252)
{
@Color=255
Caption="Var2"
}
Add(Math,13715478,623,322)
{
Op2=2
link(onResult,6775922:doWork,[])
link(Op1,9824002:getVar,[])
}
Add(LineBreakEx,9824002,623,294)
{
@Color=255
Caption="Var3"
Type=2
}
Add(LineBreakEx,6775922,665,322)
{
@Color=255
Caption="Var3"
}
Add(Math,16258504,623,385)
{
Op2=2
link(onResult,14825370:doWork,[])
link(Op1,5526314:getVar,[])
}
Add(LineBreakEx,5526314,623,357)
{
@Color=255
Caption="Var4"
Type=2
}
Add(LineBreakEx,14825370,665,385)
{
@Color=255
Caption="Var4"
}
Add(Math,1258842,623,462)
{
Op2=2
link(onResult,11539120:doWork,[])
link(Op1,11149312:getVar,[])
}
Add(LineBreakEx,11149312,623,434)
{
@Color=255
Caption="Var5"
Type=2
}
Add(LineBreakEx,11539120,665,462)
{
@Color=255
Caption="Var5"
}
Add(Math,16675688,623,532)
{
Op2=2
link(onResult,13753476:doWork,[])
link(Op1,13145937:getVar,[])
}
Add(LineBreakEx,13145937,623,504)
{
@Color=255
Caption="Var6"
Type=2
}
Add(LineBreakEx,13753476,672,532)
{
@Color=255
Caption="Var6"
}
Add(Math,11116212,623,609)
{
Op2=2
link(onResult,4506500:doWork,[])
link(Op1,9061032:getVar,[])
}
Add(LineBreakEx,9061032,623,581)
{
@Color=255
Caption="Var7"
Type=2
}
Add(LineBreakEx,4506500,672,609)
{
@Color=255
Caption="Var7"
}
Add(Math,16521520,623,679)
{
Op2=2
link(onResult,3940311:doWork,[])
link(Op1,420992:getVar,[])
}
Add(LineBreakEx,420992,623,651)
{
@Color=255
Caption="Var8"
Type=2
}
Add(LineBreakEx,3940311,672,679)
{
@Color=255
Caption="Var8"
}
Add(InfoTip,2100829,413,28)
{
Info=#188:Изменение значений может быть и больше. И это только по 8 пунктам. Имена псевдо-переменных я отобразил для удобства восприятия одним именем. На деле всё, конечно же, будет куда запутанней.|
Font=[MS Sans Serif,12,1,0,1]
Width=337
Height=718
}
Add(Hub,666656,154,168)
{
@Color=65535
link(onEvent1,4898375:doOperation,[])
link(onEvent2,179837:doEvent1,[])
}
Add(Hub,7576226,154,238)
{
@Color=65535
link(onEvent1,12979305:doOperation,[])
link(onEvent2,7497813:doEvent1,[])
}
Add(Hub,9819056,154,308)
{
@Color=65535
link(onEvent1,6215926:doOperation,[])
link(onEvent2,16454033:doEvent1,[])
}
Add(Hub,4477834,154,378)
{
@Color=65535
link(onEvent1,3408603:doOperation,[])
link(onEvent2,15476686:doEvent1,[])
}
Add(Hub,3280817,154,455)
{
@Color=65535
link(onEvent1,1882398:doOperation,[])
link(onEvent2,13160291:doEvent1,[(242,468)(242,461)])
}
Add(Hub,16153829,154,525)
{
@Color=65535
link(onEvent1,7757356:doOperation,[])
link(onEvent2,1031999:doEvent1,[(242,538)(242,531)])
}
Add(Hub,4665647,154,595)
{
@Color=65535
link(onEvent1,11115125:doOperation,[])
link(onEvent2,9080912:doEvent1,[])
}
Add(Hub,13279734,154,665)
{
@Color=65535
link(onEvent1,12039936:doOperation,[])
link(onEvent2,15883900:doEvent1,[])
}
Add(Hub,179837,357,175)
{
@Hint=#15:Другие процессы|
@Color=65535
link(onEvent1,12220216:doOperation,[])
link(onEvent2,7033184:doOperation,[])
AddHint(-59,-26,105,13,@Hint)
}
Add(Hub,7497813,357,245)
{
@Color=65535
link(onEvent1,5892505:doOperation,[])
link(onEvent2,946084:doOperation,[])
}
Add(Hub,16454033,357,315)
{
@Color=65535
link(onEvent1,3745219:doOperation,[])
link(onEvent2,13715478:doOperation,[])
}
Add(Hub,15476686,357,385)
{
@Color=65535
link(onEvent1,15822876:doOperation,[])
link(onEvent2,16258504:doOperation,[(501,398)(501,391)])
}
Add(Hub,13160291,357,455)
{
@Color=65535
link(onEvent1,1559115:doOperation,[])
link(onEvent2,1258842:doOperation,[])
}
Add(Hub,1031999,357,525)
{
@Color=65535
link(onEvent1,16469712:doOperation,[])
link(onEvent2,16675688:doOperation,[])
}
Add(Hub,9080912,357,602)
{
@Color=65535
link(onEvent1,4762567:doOperation,[])
link(onEvent2,11116212:doOperation,[])
}
Add(Hub,15883900,357,672)
{
@Hint=#15:Другие процессы|
@Color=65535
link(onEvent1,14469651:doOperation,[])
link(onEvent2,16521520:doOperation,[])
AddHint(-77,-36,105,13,@Hint)
}
END_SDK
Add(Timer,11012172,434,161)
{
Interval=100
Enable=1
link(onTimer,5872257:doFor,[])
}
Add(MT_AddData,12517520,441,119)
{
Count=9
Data=Integer(0)
InputMT=3
link(onAdd,5644722:##add,[])
link(Data1,15198660:Value1,[])
link(Data2,15198660:Value2,[])
link(Data3,15198660:Value3,[])
link(Data4,15198660:Value4,[])
link(Data5,15198660:Value5,[])
link(Data6,15198660:Value6,[])
link(Data7,15198660:Value7,[])
link(Data8,15198660:Value8,[])
link(Data9,5644722:##count,[(503,107)(527,107)(527,163)(545,163)])
}
Add(Random,9607006,399,77)
{
Max=1000
link(onRandom,15198660:doValue,[])
}
Add(FormatStr,13922849,630,119)
{
DataCount=8
Mask="%1
%2
%3
%4
%5
%6
%7
%8"
link(onFString,1890287:doEvent,[])
}
Add(Label,68836,833,119)
{
Left=30
Top=15
Width=85
Height=150
AutoSize=1
}
Add(For,3612100,350,112)
{
End=7
link(onEvent,9607006:doRandom,[(390,118)(390,83)])
link(onStop,12517520:doAdd,[])
}
Add(MemFIFO,15198660,441,77)
{
Count=8
}
Add(IndexToChanel,1890287,707,119)
{
Count=3
Point(Index)
link(onEvent1,68836:doText,[])
link(onEvent2,5695244:doText,[])
link(onEvent3,2756072:doText,[])
link(Index,2745433:Value1,[(713,107)(698,107)(698,163)(587,163)])
}
Add(For,4974307,294,112)
{
End=2
link(onEvent,3612100:doFor,[])
link(onStop,11012172:doTimer,[(341,125)(341,167)])
}
Add(Label,5695244,791,126)
{
Left=170
Top=15
Width=75
Height=150
AutoSize=1
}
Add(MT_MultiMem,2745433,581,119)
{
From=8
Count=1
link(onData,13922849:doString,[])
}
Add(Label,2756072,749,133)
{
Left=320
Top=15
Width=90
Height=150
AutoSize=1
}
Add(For,5872257,476,161)
{
End=2
link(onEvent,5644722:##select,[(519,167)(519,132)])
}