Андрей мудрёно  , а если пойти другим путём? Как тебе такой алгоритм?
#sha Add(MainForm,16486136,21,21) { Left=20 Top=105 } Add(Edit,12239100,126,63) { Left=110 Top=15 Width=110 Text="123" } Add(Button,13409225,21,112) { Left=15 Top=15 link(onClick,587227:doEvent1,[]) } Add(Math,1121741,539,168) { OpType=7 Op2=10 ResultType=0 link(onResult,8873491:doStrCat,[]) } Add(HubEx,9561272,630,210) { link(onEvent,7478652:doWork3,[(648,223)]) } Add(Math,3857233,539,217) { OpType=8 Op2=10 ResultType=0 link(onResult,14382749:doCompare,[]) } Add(Hub,6054947,308,119) { InCount=2 link(onEvent1,9591851:doOperation,[]) link(onEvent2,14332287:doOperation,[(351,132)(351,161)(296,161)(296,174)]) } Add(Math,9591851,413,119) { OpType=7 Op2=100 ResultType=0 link(onResult,3540308:doCompare,[]) } Add(DoData,13833853,126,119) { link(onEventData,6309005:doCompare,[]) link(Data,12239100:Text,[]) } Add(ListBox,9923463,700,119) { Left=235 Top=15 Width=145 Height=240 } Add(Math,14332287,308,168) { OpType=8 Op2=100 ResultType=0 link(onResult,224825:doCompare,[]) } Add(StrCat,11880235,539,119) { Str2="00" link(onStrCat,5874807:doWork2,[]) } Add(StrCat,8873491,588,168) { Str2="0" link(onStrCat,7478652:doWork2,[]) } Add(Hub,9634299,476,168) { link(onEvent1,1121741:doOperation,[]) link(onEvent2,3857233:doOperation,[(524,181)(524,223)]) } Add(HubEx,5874807,658,112) { link(onEvent,9923463:doAdd,[]) } Add(HubEx,7478652,644,161) { link(onEvent,5874807:doWork3,[(662,174)]) } Add(If_else,6845371,413,168) { Type=2 Op2=Integer(10) link(onTrue,9634299:doEvent1,[]) link(onFalse,2609436:doEvent1,[(462,181)(462,258)]) } Add(Hub,2609436,476,252) { InCount=2 OutCount=1 link(onEvent1,6636119:doWork2,[]) } Add(If_else,224825,357,168) { Type=2 Op2=Integer(19) link(onTrue,6845371:doCompare,[]) link(onFalse,2609436:doEvent2,[(403,181)(403,265)]) } Add(If_else,3540308,476,119) { Type=2 Op2=Integer(0) link(onTrue,11880235:doStrCat,[]) } Add(If_else,14382749,588,217) { Type=2 Op2=Integer(0) link(onTrue,9561272:doWork2,[]) } Add(StrMask,9442670,238,119) { Mask="0##" link(onFalse,6054947:doEvent1,[]) link(onTrue,4792163:doEvent1,[(279,132)(279,168)(226,168)(226,188)]) } Add(DoData,6932854,315,273) { Data=Integer(0) link(onEventData,6636119:doWork3,[(557,279)]) } Add(Hub,4792163,238,182) { InCount=2 link(onEvent1,6932854:doData,[(299,188)(299,279)]) link(onEvent2,6054947:doEvent2,[(289,195)(289,132)]) } Add(Hub,587227,77,112) { link(onEvent1,9923463:doClear,[(679,118)(679,132)]) link(onEvent2,13833853:doData,[]) } Add(HubEx,6636119,553,245) { link(onEvent,9561272:doWork3,[(634,258)]) } Add(StrMask,6309005,175,119) { Mask="0#" link(onFalse,9442670:doCompare,[]) link(onTrue,4792163:doEvent2,[(217,132)(217,195)]) }
|