tsdima писал(а): Пора бы уже перестроиться, и допустить возможность передачи в потоке не только предопределённых типов данных, но и объектов пользователя.
tsdima, и чем это от data_object отличается?
Я вообще говоря не о том спрашивал. Ну положим есть у меня контейнер с точками doWork, onEvent и Data(верхняя). Делаю ссылку на него - у этой ссылки появляются такие же точки + верхняя handle. Это можно назвать удачным интерфейсным решением?
------------ Дoбавленo в 15.50:
с фракталом вот что получилось
Add(MainForm,2953706,21,105) { Point(Handle) } Add(For,8450866,147,105) { Start=-100 End=100 link(onEvent,2010766:doOperation,[]) } Add(Math,2010766,196,105) { OpType=3 Op2=100 link(onResult,5732910:doNext,[]) } Add(Counter,5732910,245,105) { Min=-1 Max=1000 link(onNext,12415604:doFor,[]) } Add(For,12415604,294,105) { Start=-200 End=100 link(onEvent,5755526:doOperation,[]) link(onStop,8332390:doReset,[(339,118)(339,76)]) } Add(Math,5755526,350,105) { OpType=3 Op2=100 link(onResult,5132660:doEvent1,[]) } Add(Counter,8332390,455,56) { Min=-1 Max=1000 } Add(Hub,5132660,406,105) { OutCount=8 link(onEvent1,8332390:doNext,[(438,111)(438,62)]) link(onEvent2,8178685:doWork2,[(537,118)(537,153)]) link(onEvent3,8239575:doData,[(528,125)(528,174)]) link(onEvent4,10946398:doReset,[(504,132)(504,244)]) link(onEvent5,5847953:doClear,[(492,139)(492,377)]) link(onEvent6,6620730:doClear,[(492,146)(492,377)]) link(onEvent7,3546509:doRepeat,[(477,153)(477,370)]) link(onEvent8,3459442:doCalc,[(438,160)(438,503)]) } Add(Repeat,3546509,567,364) { Op1=Integer(1) link(onRepeat,11991298:doEvent1,[]) link(Op2,1213182:reCalc,[]) } Add(MathParse,1213182,567,308) { DataCount=3 MathStr="(%1*%1 + %2*%2 < 4) and (%3 < 64)" Point(reCalc) link(X1,7738539:Var1,[(573,296)(554,296)(554,415)]) link(X2,12484728:Var3,[(580,290)(745,290)(745,415)]) link(X3,9177964:Var1,[(587,296)]) } Add(Hub,11991298,616,364) { OutCount=5 link(onEvent1,5847953:doCalc,[]) link(onEvent3,10946398:doNext,[(648,384)(648,214)(591,214)(591,230)]) link(onEvent4,8757944:doData,[(644,391)(644,440)]) link(onEvent5,12339374:doData,[(639,398)(639,475)]) } Add(GetDataEx,9122785,651,343) { link(Data,10290518:Value,[]) } Add(GetDataEx,11003835,658,329) { link(Data,7938028:Value,[]) } Add(GetDataEx,6972624,350,147) { Angle=3 link(Data,2010766:Result,[(202,156)]) } Add(Counter,10946398,602,224) { } Add(DoData,8239575,588,168) { link(onEventData,2533009:doWork2,[]) link(Data,6972624:Var3,[(594,156)]) } Add(DoData,8757944,658,434) { link(onEventData,8178685:doWork1,[(769,440)(769,127)(627,127)]) link(Data,7738539:Var2,[]) } Add(DoData,12339374,707,469) { link(onEventData,2533009:doWork1,[(756,475)(756,138)(641,138)]) link(Data,12484728:Var2,[]) } Add(HubEx,2533009,637,161) { link(onEvent,7938028:doValue,[]) } Add(Memory,7938028,665,168) { Point(Data) } Add(Memory,10290518,658,147) { } Add(Img_Point,303235,567,497) { DrawSource=1 Point(X) Point(Y) Point(Color) link(Bitmap,1909014:Value,[(573,485)(538,485)]) link(X,2290288:Var,[]) link(Y,900159:Var,[]) } Add(MathParse,3459442,455,497) { DataCount=1 MathStr="255 - 4*%1" link(onResult,12569120:doRGB,[]) link(X1,9177964:Var2,[(461,431)(608,431)]) } Add(RGB,12569120,511,497) { link(onRGB,303235:doDraw,[]) link(G,7070108:Var2,[]) link(B,7070108:Var3,[(531,485)]) } Add(GetDataEx,7070108,511,476) { Angle=3 link(Data,3459442:Result,[(499,485)(499,541)(461,541)]) } Add(GetDataEx,9177964,595,287) { link(Data,10946398:Count,[]) } Add(LineBreak,14005060,455,98) { Caption="x" Type=1 link(Data,8332390:Count,[]) Primary=[2290288,119,350] } Add(LineBreak,15110474,245,147) { Caption="y" Type=1 link(Data,5732910:Count,[]) Primary=[900159,336,322] } Add(Button,9657125,91,105) { Left=90 Top=20 link(onClick,8450866:doFor,[]) } Add(Memory,1909014,532,441) { } Add(FastMathParse,6620730,707,364) { DataCount=3 MathStr="2*%1*%2 + %3" Point(doClear) link(X1,9122785:Var3,[(713,352)]) link(X2,11003835:Var3,[(720,338)]) link(X3,6972624:Var2,[(727,274)(363,274)]) } Add(FastMathParse,5847953,658,364) { DataCount=3 MathStr="%1*%1 - %2*%2 + %3" Point(doClear) link(onResult,6620730:doCalc,[]) link(X1,9122785:Var2,[]) link(X2,11003835:Var2,[]) link(X3,5755526:Result,[(678,282)(356,282)]) } Add(GetDataEx,12484728,700,406) { link(Data,6620730:Result,[]) } Add(HubEx,8178685,623,140) { link(onEvent,10290518:doValue,[]) } Add(GetDataEx,7738539,651,406) { link(Data,5847953:Result,[]) }
|