Похоже, что под последовательный алгоритм схема от Dilm-ы оптимальная. Я свою сколько не упрощал, пришел к тому же результату, чуть ли, ни один в один
------------ Дoбавленo в 02.30:
Вот, аналог схемы Dilm-ы, но на других компонентах при том же количестве
Add(MainForm,11062187,112,238) { Width=270 } Add(Timer,13973712,112,287) { link(onTimer,14832139:doNext,[]) } Add(Math,7673138,350,252) { OpType=1 Op2=1 ResultType=0 link(onResult,10855501:doEvent1,[]) } Add(IndexToChanel,7969369,525,343) { Count=3 Point(Index) Point(Data) link(onEvent1,11659732:doText,[(576,349)(576,314)]) link(onEvent2,13742329:doText,[]) link(onEvent3,15891592:doText,[(576,363)(576,398)]) link(Index,2262443:Var3,[(531,222)]) link(Data,14832139:Count,[(538,328)(181,328)]) } Add(Case,8311424,434,259) { Value=Integer(0) DataOnTrue=Integer(0) link(onNextCase,5851293:doData,[(488,265)(488,349)(232,349)(232,300)]) link(onTrue,3780961:doNext,[(478,272)(478,153)(233,153)(233,181)]) } Add(Counter,3780961,245,175) { Max=1000 link(onNext,14832139:doReset,[(292,181)(292,165)(160,165)(160,307)]) } Add(Hub,10855501,399,252) { link(onEvent1,7969369:doEvent,[(496,258)(496,349)]) link(onEvent2,8311424:doCase,[]) } Add(Label,11659732,595,308) { Left=175 Top=10 } Add(Label,13742329,595,350) { Left=175 Top=30 } Add(Label,15891592,595,392) { Left=175 Top=50 } Add(StrList,4803957,294,245) { Strings=#2:10|2:20|2:10| Point(doGetString) Point(onGetString) Point(IdxToSelect) Point(doReplace) link(Str,7673138:Result,[(300,233)(339,233)(339,295)(356,295)]) link(onGetString,7673138:doOperation,[]) link(IdxToSelect,2262443:Var2,[]) } Add(Counter,14832139,175,287) { Max=1000 link(onNext,4803957:doGetString,[]) } Add(DoData,5851293,245,294) { link(onEventData,4803957:doReplace,[]) link(Data,14595218:Var2,[]) } Add(GetDataEx,14595218,245,217) { link(Data,3780961:Count,[]) } Add(GetDataEx,2262443,308,217) { Angle=3 link(Data,14595218:Var3,[]) }
|