Вот кусок схемы
дальше этого продвинутся не удалось
PS: без Points.ini работать не будет(см Points.zip)
#sha Add(MainForm,11692215,49,91) { Height=531 Color=12698049 Caption="" WindowsState=2 Point(Handle) Point(onShow) Point(MouseX) Point(MouseY) Point(onMouseMove) Point(Width) Point(Height) Point(onMouseDown) link(onShow,4723905:doEvent1,[]) } Add(GL_Main,5142755,280,154) { Color=12698049 link(onInit,12198675:doInit,[]) link(onViewPort,3410847:doPerspective,[(318,167)(318,209)]) link(Handle,2182866:Var2,[(286,129)(167,129)]) } Add(Hub,4723905,210,112) { OutCount=3 link(onEvent1,5142755:doInit,[(261,118)(261,160)]) link(onEvent2,5142755:doViewPort,[(254,125)(254,167)]) link(onEvent3,14056928:doTimer,[(254,132)(254,195)(93,195)(93,307)]) } Add(Timer,14056928,105,301) { Interval=55 Enable=1 link(onTimer,9657440:doEvent1,[(145,307)(145,307)]) } Add(Hub,9657440,154,301) { OutCount=5 link(onEvent2,14768465:doClear,[]) link(onEvent5,5142755:doFlip,[(233,335)(233,174)]) } Add(GL_GTools,14768465,280,308) { Point(doClear) link(onEvent,7683745:doDraw,[]) } Add(GL_GluTools,12198675,327,154) { DrawStyle=0 link(onInit,1101264:doEnabled,[]) } Add(GL_Light,14989894,523,154) { Diffuse=15780518 } Add(GL_Options,1101264,376,154) { link(onEvent,5851269:doEnabled,[]) } Add(GL_Options,5851269,425,154) { Flag=1 link(onEvent,5809249:doEnabled,[]) } Add(GL_Options,5809249,474,154) { Flag=2 link(onEvent,14989894:doEnabled,[]) } Add(MultiElement,1089569,553,273) { link(onEvent1,14849909:##add,[(656,279)(656,307)]) } BEGIN_SDK Add(EditMulti,8179603,21,21) { EventCount=1 WorkCount=1 Width=391 link(doWork1,15749497:doSectionNames,[(49,27)(49,90)]) } Add(Ini,15749497,77,70) { FileName="Points.ini" Section="1" Key="Points" Type=1 Point(doSectionNames) Point(onSectionNames) link(onResult,13674101:doEvent1,[]) link(Section,6326660:Value,[(90,58)(108,58)(108,121)(125,121)]) link(onSectionNames,6326660:doValue,[]) } Add(Counter,11727681,238,77) { link(onNext,16095166:doValue,[]) } Add(Hub,13674101,189,70) { link(onEvent1,8179603:onEvent1,[(317,76)(317,27)]) link(onEvent2,11727681:doNext,[]) } Add(GlobalVar,16095166,315,77) { Name="N" } Add(Memory,6326660,119,77) { link(onData,15749497:doRead,[(162,83)(162,48)(65,48)(65,76)]) } END_SDK Add(GL_Perspective,3410847,325,203) { Aspect=1.25 Fovy=60 link(onPerspective,4524039:doScale,[]) } Add(Gl_Scale,4524039,378,203) { X=0.0145 Y=0.0169 link(onScale,15081693:doRotate,[]) } Add(MultiElementEx,14849909,749,301) { link(Bitmap,6707724:Var4,[(755,191)(174,191)]) } BEGIN_SDK Pos(29,51) Add(EditMultiEx,2924524,-8,-30) { WorkCount=#5:##add|8:##select|6:doDraw|5:Click|8:doEvent2|6:doStop|7:doTimer| EventCount=#8:onVertex|6:onTrue| VarCount=#4:Var4|4:Cube| DataCount=#6:Bitmap| Width=622 Height=501 Point(##add) Point(##select) PColor(##select,16711680) link(##add,5108173:doEvent1,[]) link(##select,7150354:doCompare,[]) link(doDraw,4163969:doColor,[(16,-10)(16,79)]) link(Click,9295118:doCompare,[(13,-3)(13,291)]) link(doEvent2,5108173:doEvent2,[(30,4)]) link(doStop,8561551:doStop,[(101,11)(101,242)]) link(doTimer,8561551:doTimer,[(101,18)(101,235)]) } Add(GetDataEx,15060876,188,12) { link(Data,1264794:Var2,[(201,12)(202,12)]) } Add(GL_Vertex3D,15159373,189,31) { link(onVertex,825945:doVertex,[]) link(X,15086591:Var2,[(195,28)(194,28)]) link(Y,15060876:Var2,[(202,28)(201,28)]) } Add(MultiElement,1264794,189,-23) { } BEGIN_SDK Add(EditMulti,14826663,21,21) { WorkCount=1 VarCount=4 Height=235 link(doWork1,9596672:doSplit,[(42,27)(42,69)]) link(Var1,15099347:Data1,[(27,186)(125,186)]) link(Var2,4729272:Data1,[(34,186)(181,186)]) link(Var3,11204020:Var1,[(41,233)]) link(Var4,11204020:Var2,[(48,246)(62,246)]) } Add(StrPart,9596672,63,63) { Char="," link(onSplit,8419884:doValue,[]) link(onPart,16450347:doValue,[]) } Add(Memory,8419884,175,63) { } Add(Memory,16450347,119,70) { } Add(GetData,15099347,119,119) { link(Data,16450347:Value,[]) } Add(GetData,4729272,175,119) { link(Data,8419884:Value,[]) } Add(PointXY,3802224,126,189) { link(X,15099347:Data2,[]) link(Y,4729272:Data2,[(139,177)(188,177)]) } Add(GetDataEx,11204020,49,224) { Angle=1 link(Data,3802224:Point,[(132,233)]) } END_SDK Add(GL_Vertex3D,825945,266,31) { X=100 link(onVertex,13372410:doVertex,[]) link(X,6388185:Var1,[]) link(Y,6388185:Var2,[]) } Add(GL_Vertex3D,14336158,343,31) { PColor(onVertex,16744576) link(onVertex,6901980:doEnd,[(379,37)(379,51)]) link(X,4727340:Var1,[]) link(Y,4727340:Var2,[]) } Add(GL_Vertex3D,13372410,420,31) { X=100 link(onVertex,14336158:doVertex,[(471,37)(471,25)(338,25)(338,37)]) link(X,13670935:Var1,[]) link(Y,13670935:Var2,[]) } Add(MultiElement,6388185,266,-23) { } BEGIN_SDK Add(EditMulti,14826663,21,21) { WorkCount=1 VarCount=2 link(doWork1,9596672:doSplit,[(42,27)(42,69)]) link(Var1,16450347:Value,[(27,161)(125,161)]) link(Var2,8419884:Value,[(34,158)(181,158)]) } Add(StrPart,9596672,63,63) { Char="," link(onSplit,8419884:doValue,[]) link(onPart,16450347:doValue,[]) } Add(Memory,8419884,175,63) { } Add(Memory,16450347,119,70) { } END_SDK Add(StrPart,9596672,146,-30) { Char=";" link(onSplit,7425775:doSplit,[]) link(onPart,1264794:doWork1,[]) } Add(StrPart,7425775,223,-30) { Char=";" link(onSplit,1967819:doSplit,[]) link(onPart,6388185:doWork1,[]) } Add(StrPart,1967819,300,-30) { Char=";" link(onSplit,157766:doSplit,[]) link(onPart,4727340:doWork1,[]) } Add(MultiElement,4727340,343,-23) { } BEGIN_SDK Add(EditMulti,14826663,21,21) { WorkCount=1 VarCount=2 link(doWork1,9596672:doSplit,[(42,27)(42,69)]) link(Var1,16450347:Value,[(27,161)(125,161)]) link(Var2,8419884:Value,[(34,158)(181,158)]) } Add(StrPart,9596672,63,63) { Char="," link(onSplit,8419884:doValue,[]) link(onPart,16450347:doValue,[]) } Add(Memory,8419884,175,63) { } Add(Memory,16450347,119,70) { } END_SDK Add(MultiElement,13670935,420,-23) { } BEGIN_SDK Add(EditMulti,14826663,21,21) { WorkCount=1 VarCount=4 Height=242 link(doWork1,9596672:doSplit,[(56,27)(56,69)]) link(Var1,15099347:Data1,[(27,207)(146,207)]) link(Var2,4729272:Data1,[(34,207)(202,207)]) link(Var3,7559340:Var1,[(41,233)]) link(Var4,7559340:Var2,[(48,250)(62,250)]) } Add(StrPart,9596672,91,63) { Char="," link(onSplit,8419884:doValue,[]) link(onPart,16450347:doValue,[]) } Add(Memory,8419884,196,63) { } Add(Memory,16450347,140,70) { } Add(GetData,15099347,140,119) { link(Data,16450347:Value,[]) } Add(GetData,4729272,196,119) { link(Data,8419884:Value,[]) } Add(PointXY,10153624,175,196) { link(X,15099347:Data2,[(181,174)(153,174)]) link(Y,4729272:Data2,[(188,174)(209,174)]) } Add(GetDataEx,7559340,49,224) { Angle=1 link(Data,10153624:Point,[(181,233)]) } END_SDK Add(Memory,5328543,517,-23) { } Add(DoData,12783282,524,87) { link(onEventData,2924524:onVertex,[(572,93)(572,-24)]) link(Data,4095700:Data2,[]) } Add(Gl_Begin,14701193,150,31) { BlockType=9 link(onBegin,15159373:doVertex,[]) } Add(Gl_End,6901980,384,45) { } Add(PointInRect,9484598,273,229) { PColor(Point,16711935) PColor(RPoint1,16711935) PColor(RPoint2,16711935) link(onTrue,12783282:doData,[(490,235)(490,93)]) link(Point,168111:Var4,[]) link(RPoint1,168111:Var5,[]) link(RPoint2,168111:Var6,[]) } Add(Timer,8561551,210,229) { link(onTimer,9484598:doCheck,[]) } Add(PointXY,2414606,252,117) { link(X,11766298:Var,[(258,113)(223,113)]) link(Y,3253273:Var,[(265,113)(286,113)]) } Add(GlobalVar,11766298,217,96) { Name="MouseX" } Add(GlobalVar,3253273,280,96) { Name="MouseY" } Add(MultiElement,168111,252,173) { link(Data1,2414606:Point,[]) link(Data2,1264794:Var3,[(265,154)(209,154)]) link(Data3,13670935:Var3,[(272,154)(440,154)]) } BEGIN_SDK Add(EditMulti,10568886,21,21) { DataCount=3 VarCount=6 link(Var1,15108497:Data1,[(27,161)(41,161)]) link(Var2,14935821:Data1,[(34,161)(76,161)]) link(Var3,11833310:Data1,[(41,161)(111,161)]) link(Var4,15108497:Data2,[(48,161)(48,161)]) link(Var5,14935821:Data2,[(55,161)(83,161)]) link(Var6,11833310:Data2,[(62,161)(118,161)]) } Add(GetData,15108497,35,70) { link(Data,10568886:Data1,[(41,46)(27,46)]) } Add(GetData,14935821,70,70) { link(Data,10568886:Data2,[(76,46)(34,46)]) } Add(GetData,11833310,105,70) { link(Data,10568886:Data3,[(111,46)(41,46)]) } END_SDK Add(PointInRect,9056475,252,285) { PColor(Point,16711935) PColor(RPoint1,16711935) PColor(RPoint2,16711935) link(onTrue,11203886:doString,[]) link(Point,168111:Var1,[]) link(RPoint1,168111:Var2,[]) link(RPoint2,168111:Var3,[]) } Add(If_else,7150354,475,-23) { Type=5 PColor(onTrue,16711680) link(onTrue,5328543:doValue,[]) } Add(If_else,9295118,76,285) { Op2=Integer(1) link(onTrue,9056475:doCheck,[]) } Add(FormatStr,11203886,510,285) { Mask="%1;%2" link(onFString,2924524:onTrue,[(589,291)(589,-17)]) link(Str1,9817483:Value,[(516,143)(103,143)]) link(Str2,4095700:Data1,[]) } Add(GetData,4095700,517,26) { link(Data,5328543:Value,[]) } Add(Memory,9817483,97,-30) { link(onData,9596672:doSplit,[]) } Add(Memory,6632803,41,33) { } Add(StrPart,157766,377,-30) { Char=";" link(onSplit,6632803:doValue,[(421,-24)(421,25)(22,25)(22,39)]) link(onPart,13670935:doWork1,[]) } Add(Hub,5108173,48,-30) { InCount=2 OutCount=1 link(onEvent1,9817483:doValue,[]) } Add(GL_Color,4163969,41,73) { link(onColor,8977786:doDraw,[(91,79)(91,79)]) link(Color,6632803:Value,[(47,70)(47,70)]) } Add(Img_Text,8977786,109,73) { Font=[MS Sans Serif,12,1,16777215,1] Text="SimpleText" link(onDraw,14701193:doBegin,[(145,79)(145,37)]) link(Bitmap,2924524:Bitmap,[(115,1)(-2,1)]) link(X,15086591:Var1,[(129,21)]) link(Y,15060876:Var1,[(136,21)]) } Add(GetDataEx,15086591,181,12) { link(Data,1264794:Var1,[(194,12)(195,12)]) } END_SDK Add(Gl_Axis,7683745,329,308) { YColor=65535 Length=999 Title=1 TitleScale=999 TitleSpace=666 link(onDraw,619504:doBeginList,[]) } Add(MultiElement,209894,490,308) { link(onEvent1,2611630:doWork2,[]) link(onEvent2,14849909:doDraw,[]) link(onEvent3,16273971:doEndList,[(555,328)(555,335)]) } BEGIN_SDK Add(EditMulti,496766,21,21) { EventCount=3 WorkCount=1 link(doWork1,7747484:doFor,[(53,27)(53,104)]) } Add(GlobalVar,12996386,98,70) { Name="N" } Add(For,7747484,91,98) { link(onEvent,10041337:doEvent1,[(198,104)(198,27)]) link(onStop,496766:onEvent3,[(222,111)(222,41)]) link(End,12996386:Var,[]) } Add(Hub,10041337,273,21) { link(onEvent1,496766:onEvent1,[]) link(onEvent2,496766:onEvent2,[]) } END_SDK Add(Gl_EndList,16273971,588,329) { link(onEndList,6707724:doWork1,[(632,335)(632,195)(135,195)(135,55)]) } Add(Gl_BeginList,619504,420,308) { link(onBiginList,209894:doWork1,[]) } Add(Thread,9655723,588,105) { Delay=55 FastStop=0 link(onExec,8739674:doCapture,[]) } Add(GL_Rotate,15081693,427,203) { Angle=180 X=6 link(onRotate,2579538:doTranslate,[]) } Add(Gl_Translate,2579538,476,203) { X=-396 Y=-273 link(onTranslate,1089569:doWork1,[(520,209)(520,279)]) } Add(LineBreak,12805096,602,252) { Caption="onClick" link(Out,11881191:doWork1,[]) Primary=[8797857,-385,-203] } Add(MultiElement,12072295,147,154) { link(Data1,6707724:Var1,[(153,124)(153,124)]) link(Data2,6707724:Var2,[(160,124)(160,124)]) link(Data3,11692215:Width,[(167,145)(76,145)]) link(Data4,11692215:Height,[(174,145)(83,145)]) } BEGIN_SDK Add(EditMulti,9004173,21,21) { EventCount=1 WorkCount=1 DataCount=4 Width=391 link(doWork1,4975806:doEvent1,[(28,27)(28,97)]) } Add(Hub,4975806,35,91) { OutCount=5 link(onEvent1,2341336:doData,[]) link(onEvent2,1410018:doData,[]) link(onEvent3,9004173:onEvent1,[(194,111)(194,27)]) link(onEvent4,12704706:doData,[]) link(onEvent5,2898446:doData,[]) } Add(GlobalVar,3473620,133,77) { Name="MouseX" } Add(GlobalVar,11694644,161,98) { Name="MouseY" } Add(DoData,2341336,84,91) { link(onEventData,3473620:doValue,[(124,97)(124,83)]) link(Data,9004173:Data1,[(90,56)(27,56)]) } Add(DoData,1410018,126,98) { link(onEventData,11694644:doValue,[]) link(Data,9004173:Data2,[(132,60)(34,60)]) } Add(GlobalVar,1921302,280,98) { Name="FormW" } Add(GlobalVar,6350807,322,119) { Name="FormH" } Add(DoData,12704706,231,112) { link(onEventData,1921302:doValue,[(271,118)(271,104)]) link(Data,9004173:Data3,[(237,66)(41,66)]) } Add(DoData,2898446,273,119) { link(onEventData,6350807:doValue,[]) link(Data,9004173:Data4,[(279,70)(48,70)]) } END_SDK Add(Hub,7650878,756,105) { OutCount=3 link(onEvent1,7584438:doExecute,[]) } Add(HubEx,2611630,721,301) { link(onEvent,14849909:##select,[]) } Add(MultiElement,11881191,679,252) { link(onEvent1,2611630:doWork1,[(725,258)]) link(onEvent2,14849909:Click,[(730,265)(730,328)]) } BEGIN_SDK Add(EditMulti,928345,21,21) { EventCount=2 WorkCount=1 link(doWork1,15602716:doValue,[(39,27)(39,102)]) } Add(Hub,4607250,140,96) { link(onEvent1,928345:onEvent1,[(246,102)(246,27)]) link(onEvent2,8094418:doData,[]) } Add(For,9059338,98,96) { End=3 link(onEvent,4607250:doEvent1,[]) } Add(DoData,8094418,189,103) { link(onEventData,928345:onEvent2,[(268,109)(268,34)]) link(Data,15602716:Value,[(195,91)(129,91)(129,140)(62,140)]) } Add(Memory,15602716,56,96) { link(onData,9059338:doFor,[]) } END_SDK Add(Hub,1824989,518,91) { OutCount=3 link(onEvent3,9655723:doStart,[]) } Add(Gl_Scale,795605,378,63) { X=0.9 Y=0.9 link(Z,1174427:Var2,[]) } Add(Memory,3039696,392,7) { Default=Integer(0) } Add(MenuEx,5948838,273,63) { Menu=#9:
|