При повторном запуске прога звук не играет потому, что надо закрывать миди выход при закрытии проги. Add(MainForm,15261923,70,42) { Width=800 Height=600 Cursor=2 Caption="GL" BorderStyle=0 Icon=[ZIPFE02000078DAC5903D8AC330108527C1E0525BA5769963B8306C63C845D2AB11D84773B19066D8632C5BB8572398CC8C473F246CBD4F12A3EF6978960570E2310C1F20FA3D035CB85E790DBC465E27E8F46C3DC31F5A75C2BA1E45066FB66DE32A0EE904A2A3C8104B9815FD42451127EF1B0327E81A8EC837E286CCE9CEDC37BC5796DCF4F3059DB0E5C66F9C66E19C8BAC7EF12537222647BECD55DE5F38E71A975CE39C5BD872956FA48D85E787975D61971EC4DBCA14C4283CDEBC1821338E9F62A4DE783F8CE4EC3E7C1531D0FA299861FDD908F51DD5989B770DFA3F95D568590CD732D5EF65C3D19BE09FF5040A548844] Point(onResize) Point(Handle) Point(onKeyDown) Point(doWidth) Point(doHeight) Point(MouseX) Point(MouseY) Point(onMouseDown) Point(onMouseUp) Point(onMouseMove) Point(onClose) link(onCreate,16299401:doEvent1,[]) link(onResize,3213527:doWork1,[(122,69)(122,48)(179,48)]) link(onKeyDown,16509952:doCase,[(114,76)(114,28)(-18,28)(-18,41)]) link(onMouseDown,16000527:doIndex,[(122,83)(122,202)]) link(onMouseUp,16000527:doIndex1,[(116,90)(116,209)]) link(onMouseMove,16000527:doIndex2,[(110,97)(110,216)]) link(onClose,2299613:In,[(139,104)(139,146)]) } Add(GL_Main,12986311,217,56) { Color=32768 TwoSide=0 Point(Fps) link(onInit,2934688:doWork1,[]) link(onViewPort,3410847:doPerspective,[(276,69)(276,115)(3,115)(3,132)]) link(Handle,15261923:Handle,[(223,44)(130,44)(130,132)(76,132)]) } Add(Timer,9506849,189,126) { Interval=33 Enable=1 link(onTimer,1049454:doEvent1,[]) } Add(GL_GTools,771925,287,126) { Point(doClear) Point(doPushMatrix) Point(doPopMatrix) } Add(Hub,1049454,238,126) { OutCount=5 link(onEvent1,771925:doClear,[]) link(onEvent2,771925:doPushMatrix,[]) link(onEvent3,16000527:doTranslate,[(272,146)(272,223)]) link(onEvent4,771925:doPopMatrix,[(279,153)(279,146)]) link(onEvent5,12986311:doFlip,[(264,160)(264,118)(212,118)(212,76)]) } Add(Hub,16299401,140,56) { OutCount=5 link(onEvent1,12986311:doInit,[]) link(onEvent2,3213527:doWork2,[]) link(onEvent3,9506849:doTimer,[(169,76)(169,132)]) link(onEvent4,12144461:doWork1,[(162,83)(162,110)(-21,110)(-21,76)]) link(onEvent5,3186716:In,[]) } Add(HubEx,3213527,175,63) { link(onEvent,12986311:doViewPort,[]) } Add(GL_Perspective,3410847,-7,126) { Fovy=30 link(Aspect,12144461:Var1,[]) } Add(Case,16509952,-7,35) { Value=Integer(27) link(onTrue,15261923:doClose,[(37,48)(37,69)]) } Add(MultiElement,12144461,-7,70) { @Hint=#92:Устанавливает полноэкранный режим приложения и соотношение сторон при BorderStyle - bsNone.| link(onEvent1,15261923:doWidth,[]) link(onEvent2,15261923:doHeight,[]) } BEGIN_SDK Add(EditMulti,14495888,7,7) { EventCount=2 WorkCount=1 VarCount=1 Width=307 Height=277 link(doWork1,9938436:doEvent1,[(31,13)(31,48)]) link(Var1,8872951:Result,[(13,263)(237,263)]) } Add(Screen,7951566,126,28) { EnumMask="%v" link(onEnum,11571689:doOperation,[]) } Add(Math,11571689,168,28) { OpType=39 link(onResult,8277205:doValue,[]) link(Op2,11571689:Result,[(181,16)(213,16)(213,72)(174,72)]) } Add(Screen,8335904,133,161) { EnumMask="%h" link(onEnum,16134009:doOperation,[]) } Add(Hub,9938436,56,42) { OutCount=5 link(onEvent1,7951566:doEnum,[]) link(onEvent2,1329470:doData,[(111,55)(111,76)]) link(onEvent3,400462:doData,[(105,62)(105,118)]) link(onEvent4,8335904:doEnum,[(98,69)(98,181)]) link(onEvent5,8872951:doOperation,[(91,76)(91,216)]) } Add(Math,16134009,175,161) { OpType=39 link(onResult,16143879:doValue,[]) link(Op2,16134009:Result,[(188,149)(220,149)(220,205)(181,205)]) } Add(Memory,8277205,231,28) { } Add(Memory,16143879,238,161) { } Add(Math,8872951,231,210) { OpType=3 link(Op1,8277205:Value,[]) link(Op2,16143879:Value,[]) } Add(DoData,400462,133,112) { link(onEventData,14495888:onEvent2,[(296,118)(296,20)]) link(Data,7951566:Height,[]) } Add(DoData,1329470,126,70) { link(onEventData,14495888:onEvent1,[(290,76)(290,13)]) link(Data,7951566:Width,[]) } END_SDK Add(MultiElement,2934688,287,56) { } BEGIN_SDK Add(EditMulti,4946077,21,21) { WorkCount=1 Height=123 link(doWork1,12198675:doInit,[(35,27)(35,83)]) } Add(GL_GluTools,12198675,49,77) { Texture=0 link(onInit,951894:doEnabled,[]) } Add(GL_Options,1101264,133,77) { Flag=8 link(onEvent,5851269:doEnabled,[]) } Add(GL_Options,5851269,175,77) { Flag=2 link(onEvent,545688:doEnabled,[]) } Add(GL_Light,545688,224,77) { Ambient=8421504 link(onEnabled,545688:doMove,[(264,83)(264,115)(217,115)(217,90)]) link(onMove,7792817:doSet,[]) link(Point,114661:Point3D,[]) } Add(GL_Point3D,114661,224,35) { X=2 Y=2 Z=10 } Add(GL_Options,951894,91,77) { Flag=1 link(onEvent,1101264:doEnabled,[]) } Add(GL_Material,7792817,273,84) { Side=2 Diffuse=0 Specular=16777215 Shininess=30 } END_SDK Add(StrList,1383431,735,56) { @Hint=#13:Список клавиш| Strings=#26:16777215;0;0;0;0.19;0.07;1|27:0;0.12;0.05;0;0.24;0.12;0.6|28:16777215;0.2;0;0;0.39;0.07;1|27:0;0.36;0.05;0;0.48;0.12;0.6|28:16777215;0.4;0;0;0.59;0.07;1|28:16777215;0.6;0;0;0.79;0.07;1|27:0;0.72;0.05;0;0.84;0.12;0.6|28:16777215;0.8;0;0;0.99;0.07;1|27:0;0.94;0.05;0;1.06;0.12;0.6|26:16777215;1;0;0;1.19;0.07;1|27:0;1.16;0.05;0;1.28;0.12;0.6|28:16777215;1.2;0;0;1.39;0.07;1|28:16777215;1.4;0;0;1.59;0.07;1|27:0;1.52;0.05;0;1.64;0.12;0.6|28:16777215;1.6;0;0;1.79;0.07;1|27:0;1.74;0.05;0;1.86;0.12;0.6|28:16777215;1.8;0;0;1.99;0.07;1|26:16777215;2;0;0;2.19;0.07;1|27:0;2.12;0.05;0;2.24;0.12;0.6|28:16777215;2.2;0;0;2.39;0.07;1|27:0;2.33;0.05;0;2.45;0.12;0.6|28:16777215;2.4;0;0;2.59;0.07;1|27:0;2.54;0.05;0;2.66;0.12;0.6|28:16777215;2.6;0;0;2.79;0.07;1|28:16777215;2.8;0;0;2.99;0.07;1|27:0;2.92;0.05;0;3.04;0.12;0.6|26:16777215;3;0;0;3.19;0.07;1|27:0;3.14;0.05;0;3.26;0.12;0.6|28:16777215;3.2;0;0;3.39;0.07;1|13:0;0;0;0;0;0;0| AddHint(44,11,93,13,@Hint) } Add(ArrayEnum,12353471,385,182) { link(onItem,16078968:doSplit,[]) link(onEndEnum,14011674:doEvent1,[]) link(Array,15134365:Var2,[(391,118)(755,118)]) } Add(GL_Cube2,3466032,644,308) { link(onDraw,15964087:doPopMatrix,[]) link(Point1,4056285:Point3D,[(650,296)(622,296)]) link(Point2,11700749:Point3D,[]) } Add(GL_Point3D,11700749,651,252) { link(X,16078968:Part5,[(657,233)(643,233)]) link(Y,16078968:Part6,[(664,233)(650,233)]) link(Z,16078968:Part7,[(671,233)(657,233)]) } Add(GL_Point3D,4056285,616,252) { link(X,16078968:Part2,[]) link(Y,16078968:Part3,[]) link(Z,16078968:Part4,[]) } Add(MultiStrPart,16078968,609,182) { Count=7 link(onSplit,11234327:doOperation,[(673,188)(673,223)(492,223)(492,258)]) } Add(GL_Color,5524408,602,308) { Color=255 link(onColor,3466032:doDraw,[]) link(Color,2630251:Var3,[(608,292)]) } Add(Math,11234327,504,252) { Op2=3 link(onResult,182480:doValue,[]) link(Op1,2630251:Var1,[(510,240)(542,240)(542,292)]) } Add(Memory,182480,560,252) { Default=Integer(1) link(onData,7227261:doPushMatrix,[(600,258)(600,299)(548,299)(548,314)]) } Add(ArrayEnum,1628268,749,385) { link(onItem,16333783:doSplit,[(902,391)(902,468)]) link(onEndEnum,14835204:doDisabled,[(786,398)(786,405)]) link(Array,15134365:Var3,[(755,117)]) } Add(GL_Cube2,6277204,945,588) { link(onDraw,3872489:doPopMatrix,[]) link(Point1,1287191:Point3D,[(951,576)(923,576)]) link(Point2,6002991:Point3D,[]) } Add(GL_Point3D,6002991,952,532) { link(X,16333783:Part5,[(958,513)(944,513)]) link(Y,16333783:Part6,[(965,513)(951,513)]) link(Z,16333783:Part7,[(972,513)(958,513)]) } Add(GL_Point3D,1287191,917,532) { link(X,16333783:Part2,[]) link(Y,16333783:Part3,[]) link(Z,16333783:Part4,[]) } Add(MultiStrPart,16333783,910,462) { Count=7 link(onSplit,6690177:doOperation,[(975,468)(975,449)(779,449)(779,468)]) } Add(GL_Color,11987096,903,588) { Color=0 link(onColor,6277204:doDraw,[]) link(Color,16333783:Part1,[(909,541)(916,541)]) } Add(InlineCode,4532244,105,385) { @Hint=#44:Цвет пикселя в точке координат курсора мышки|10:Автор: MAV| WorkPoints=#12:doReadPixels| EventPoints=#12:onReadPixels| VarPoints=#12:PixelsColorR| DataPoints=#1:X|1:Y| Code=#15:unit HiAsmUnit;|0:|9:interface|0:|28:uses Kol,Share,Debug,OpenGL;|0:|4:type|28: THiAsmClass = class(TDebug)|8: private|60: Viewport : Array [0..3] of GLInt; // параметры viewport-a.|59: RealY : GLint ; // позиция OpenGL y - координаты|34: pixel : Array [0..2] of GLUbyte;|7: public|25: onReadPixels:THI_Event;|14: X:THI_Event;|17: Y:THI_Event; |53: procedure doReadPixels(var Data:TData; index:word);|53: procedure PixelsColorR(var Data:TData; index:word);|0:|5: end;|0:|14:implementation|0:|63:procedure THiAsmClass.doReadPixels(var Data:TData; index:word);|3:var|13: Yr:Integer;|13: Xr:Integer;|5:begin|28: Yr := readInteger(Data,Y);|28: Xr := readInteger(Data,X);|73: glGetIntegerv(GL_VIEWPORT,@Viewport); // узнаём параметры viewport-a.|32: RealY := viewport[3] - Yr - 1;|66: glReadPixels(Xr, RealY, 1, 1, GL_RGB, GL_UNSIGNED_BYTE, @pixel);|28: _hi_OnEvent(onReadPixels);|5: end;|1: |63:procedure THiAsmClass.PixelsColorR(var Data:TData; index:word);|5:begin|40: If (Pixel [0] <> 0) and (Pixel [1] = 0)|6: then|42: If (Pixel [0] <> 0) and (Pixel [2] = 0)|6: then|23: dtReal(Data,pixel[0]);|4:end;|0:|4:end.| link(onReadPixels,9175031:doCompare,[]) link(X,15374350:Var2,[(111,337)(83,337)]) link(Y,15951435:Var2,[(118,329)(90,329)]) AddHint(-102,62,184,39,@Hint) } Add(Math,66219,196,392) { OpType=1 Op2=1 Default=30 link(onResult,4222463:doOperation,[]) link(Op1,2750066:Var3,[(202,369)]) } Add(If_else,9175031,154,385) { link(onFalse,66219:doOperation,[]) link(Op2,2750066:Var2,[]) } Add(GetDataEx,2750066,161,364) { Angle=3 link(Data,4532244:PixelsColorR,[(146,369)(146,427)(111,427)]) } Add(GL_GTools,7227261,560,308) { Point(doPushMatrix) link(onEvent,5524408:doColor,[]) } Add(GL_GTools,15964087,686,308) { Point(doPopMatrix) } Add(GL_GTools,10419737,819,588) { Point(doPushMatrix) link(onEvent,3330485:doRotate,[]) } Add(GL_GTools,3872489,987,588) { Point(doPopMatrix) } Add(Hub,14011674,434,189) { OutCount=4 link(onEvent1,4913107:In,[]) link(onEvent2,9093986:In,[]) link(onEvent3,13691170:In,[]) link(onEvent4,182480:doClear,[(548,216)(548,265)]) } Add(GetDataEx,15134365,749,112) { link(Data,1383431:Array,[]) } Add(IndexToChanel,11940758,21,385) { Point(Index) link(onEvent1,6689727:doEvent1,[]) link(Index,6177308:Value,[]) } Add(Memory,6177308,21,336) { Default=Integer(1) } Add(Hub,6689727,63,385) { link(onEvent1,4532244:doReadPixels,[]) link(onEvent2,6177308:doClear,[(89,398)(89,374)(9,374)(9,349)]) } Add(GL_GTools,13731727,658,385) { Point(doClear) link(onEvent,6119139:doEnabled,[]) } Add(GL_Rotate,3330485,861,588) { X=1 link(onRotate,11987096:doColor,[]) link(Angle,8978220:Value,[]) } Add(Memory,8978220,861,539) { Default=Integer(0) link(onData,10419737:doPushMatrix,[(904,545)(904,577)(807,577)(807,594)]) } Add(Math,6690177,791,462) { Op2=1 link(onResult,824383:doValue,[]) link(Op1,824383:Value,[(797,453)(831,453)(831,502)(853,502)]) } Add(Memory,824383,847,462) { Default=Integer(0) link(onData,6072663:doCompare,[(889,468)(889,523)(758,523)(758,545)]) } Add(If_else,6072663,770,539) { link(onTrue,8039366:doData,[]) link(onFalse,8978220:doClear,[]) link(Op2,1895303:Value,[(783,514)(321,514)]) } Add(DoData,8039366,812,539) { Data=Integer(3) link(onEventData,8978220:doValue,[]) } Add(GetDataEx,2630251,560,287) { link(Data,182480:Value,[]) } Add(Memory,1895303,315,448) { Default=Integer(30) } Add(LineBreak,4499275,224,455) { Caption="m_up" Color=12639424 link(Out,16189176:doEvent1,[]) Primary=[9130254,119,-252] } Add(GL_Cube2,11942279,945,210) { link(onDraw,429437:doPopMatrix,[]) link(Point1,6220849:Point3D,[(951,198)(923,198)]) link(Point2,10597629:Point3D,[]) } Add(GL_Point3D,10597629,952,154) { X=3.44 Y=0.01 Z=0.98 } Add(GL_Point3D,6220849,917,154) { X=-0.04 Y=-0.08 Z=-0.32 } Add(GL_Color,890280,903,210) { Color=16711680 link(onColor,11942279:doDraw,[]) } Add(GL_GTools,1417277,861,210) { Point(doPushMatrix) link(onEvent,890280:doColor,[]) } Add(GL_GTools,429437,987,210) { Point(doPopMatrix) link(onEvent,5955633:doPushMatrix,[(1031,216)(1031,246)(856,246)(856,321)]) } Add(GL_Cube2,5380445,952,315) { link(onDraw,8983944:doPopMatrix,[]) link(Point1,6402022:Point3D,[(958,303)(930,303)]) link(Point2,5698803:Point3D,[]) } Add(GL_Point3D,5698803,959,259) { X=3.44 Y=0.13 Z=0.03 } Add(GL_Point3D,6402022,924,259) { X=-0.04 Y=-0.01 Z=-0.32 } Add(GL_Color,12164023,910,315) { Color=16711680 link(onColor,5380445:doDraw,[]) } Add(GL_GTools,5955633,868,315) { Point(doPushMatrix) link(onEvent,12164023:doColor,[]) } Add(GL_GTools,8983944,994,315) { Point(doPopMatrix) } Add(GL_Options,6119139,700,385) { link(onEvent,1628268:doEnum,[]) } Add(GL_Options,14835204,798,392) { link(onEvent,824383:doClear,[(838,398)(838,475)]) } Add(InfoTip,12222007,378,140) { Info=#91:Невидимые клавиши, каждому объекту присваиваем уникальный цвет R который задаёт ID объекта.| Font=[MS Sans Serif,8,1,16711680,1] Width=358 Height=214 } Add(LineBreak,3201496,609,385) { Caption="2" Color=65280 link(Out,13731727:doClear,[]) Primary=[9093986,-112,-189] } Add(LineBreak,5358751,819,210) { Caption="3" Color=65280 link(Out,1417277:doPushMatrix,[]) Primary=[13691170,-357,-7] } Add(LineBreak,6557846,-21,385) { Caption="1" Color=65280 link(Out,11940758:doEvent,[]) Primary=[4913107,483,-196] } Add(InfoTip,6630529,805,133) { Info=#14:Корпус пианино| Font=[MS Sans Serif,8,1,16711680,1] Width=232 Height=221 } Add(InfoTip,8835728,651,378) { Info=#15:Видимые клавиши| Font=[MS Sans Serif,8,1,16711680,1] Width=386 Height=249 } Add(LineBreak,6712010,-49,336) { Caption="m_down" Color=15780518 link(Out,6177308:doValue,[]) Primary=[9378175,392,-112] } Add(Hub,96318,329,392) { link(onEvent1,1895303:doValue,[(353,398)(353,442)(303,442)(303,454)]) link(onEvent2,6517766:doCalc,[(367,405)(367,454)]) } Add(Hub,16189176,280,455) { link(onEvent1,1895303:doClear,[]) link(onEvent2,15475950:doNoteOff,[(302,468)(302,580)]) } Add(LineBreak,8394180,259,539) { Caption="0" Color=16711680 link(Out,1928174:doEvent1,[]) Primary=[3186716,-84,-455] } Add(ComboBox,15722354,546,609) { Left=100 Top=45 Width=185 Height=24 Color=32768 Font=[Arial,10,0,16777215,204] Text="" ReadOnly=0 ItemHeight=24 Point(doSelect) Point(Handle) link(onClick,15475950:doSetInstrument,[(589,622)(589,595)(411,595)(411,573)]) } Add(ArrayEnum,5619420,441,609) { link(onItem,15722354:doAdd,[]) link(onEndEnum,5251529:doData,[]) link(Array,15475950:Instruments,[]) } Add(Memory,4797402,434,469) { Default=Integer(790) PColor(onData,11206400) link(onData,15475950:doSendToOut,[(480,475)(480,508)(415,508)(415,566)]) } Add(Memory,12644644,427,427) { Default=Integer(144) } Add(Hub,1928174,322,539) { link(onEvent1,11436986:doData,[]) link(onEvent2,5619420:doEnum,[(354,552)(354,615)]) } Add(MathParse,6517766,378,448) { MathStr="(%1+59)+(%2*12)" link(onResult,4797402:doValue,[(422,454)(422,475)]) link(X2,9417750:Position,[]) } Add(Label,1780448,532,392) { Left=350 Top=10 Width=117 Height=35 Color=32768 Font=[Arial,14,1,16777215,204] Caption="Октава: 4" } Add(UpDown,9417750,385,392) { Left=350 Top=45 Width=115 Height=30 Color=16776960 Max=3 Min=-3 Kind=0 link(onPosition,9872590:doOperation,[]) } Add(Math,9872590,427,392) { Op2=4 link(onResult,10711660:doString,[]) } Add(FormatStr,10711660,469,392) { Mask="Октава: %1" link(onFString,1780448:doText,[]) } Add(Label,2197,531,435) { Left=100 Top=10 Width=185 Height=33 Color=32768 Font=[Arial,14,1,16777215,204] Caption="Инструмент" } Add(DoData,5251529,483,616) { link(onEventData,15722354:doSelect,[(538,622)(538,657)]) } Add(MultiElementEx,16000527,287,196) { @Hint=#8:вращение| link(onScale,12353471:doEnum,[(327,202)(327,188)]) link(onm_up,9130254:In,[]) link(onm_down,9378175:In,[(335,216)(335,230)]) link(Data1,15374350:Var3,[(293,187)]) link(Data11,15951435:Var3,[(300,180)]) AddHint(-25,46,66,13,@Hint) } BEGIN_SDK Add(EditMultiEx,7950383,28,14) { WorkCount=#19:doIndex=onMouseDown|18:doIndex1=onMouseUp|20:doIndex2=onMouseMove|11:doTranslate| EventCount=#7:onScale|6:onm_up|8:onm_down| DataCount=#12:Data1=MouseX|13:Data11=MouseY| Width=391 Height=319 link(doIndex,7351997:doCase,[(96,20)(96,69)]) link(doIndex1,13860287:doCase,[]) link(doIndex2,14199263:doEvent1,[(54,34)(54,146)]) link(doTranslate,3456035:In,[]) } Add(SampleDelta,13251656,133,140) { link(onCalcDelta,14617989:doEvent,[]) link(Data,7950383:Data1,[(139,119)(34,119)]) } Add(SampleDelta,7222504,112,217) { link(onCalcDelta,8643139:doEvent,[]) link(Data,7950383:Data11,[(118,126)(41,126)]) } Add(Hub,14199263,70,140) { link(onEvent1,13251656:doCalcDelta,[]) link(onEvent2,7222504:doCalcDelta,[(98,153)(98,223)]) } Add(Case,13860287,112,21) { Value=Integer(1) DataOnTrue=Integer(0) link(onNextCase,7950383:onm_up,[]) link(onTrue,15076721:doWork1,[(165,34)]) } Add(Case,7351997,112,63) { Value=Integer(1) DataOnTrue=Integer(1) link(onNextCase,7950383:onm_down,[(177,69)(177,34)]) link(onTrue,15076721:doWork2,[]) } Add(GL_Rotate,9726599,259,287) { Y=1 link(onRotate,2968317:doScale,[]) link(Angle,16594472:Var2,[]) } Add(GL_Rotate,8079493,217,287) { X=1 link(onRotate,9726599:doRotate,[]) link(Angle,4606207:Var3,[(223,268)]) } Add(HubEx,15076721,161,70) { link(onEvent,5407270:doValue,[]) } Add(Memory,5407270,203,70) { } Add(GetDataEx,16594472,259,189) { link(Data,13129530:Result,[]) } Add(LineBreak,6026358,175,287) { Caption=">1" link(Out,8079493:doRotate,[]) Primary=[3456035,-112,-252] } Add(IndexToChanel,14617989,203,140) { Point(Index) link(onEvent2,13129530:doOperation,[]) link(Index,10425670:Var2,[]) } Add(IndexToChanel,8643139,168,217) { Point(Index) link(onEvent2,169611:doOperation,[]) link(Index,10425670:Var1,[(174,117)]) } Add(Gl_Translate,14755141,343,287) { X=-1.7 Y=-0.3 link(onTranslate,7950383:onScale,[(389,293)(389,20)]) } Add(Gl_Scale,2968317,301,287) { X=1.3 Y=1.3 Z=1.3 link(onScale,14755141:doTranslate,[]) } Add(Math,13129530,259,147) { link(Op2,16594472:Var1,[(272,135)(247,135)(247,194)]) } Add(Math,169611,217,224) { Default=22 link(Op2,4606207:Var1,[(230,212)(208,212)(208,268)]) } Add(GetDataEx,10425670,203,112) { link(Data,5407270:Value,[]) } Add(GetDataEx,4606207,217,263) { link(Data,169611:Result,[]) } END_SDK Add(GetDataEx,15374350,77,182) { link(Data,15261923:MouseX,[]) } Add(GetDataEx,15951435,84,175) { link(Data,15261923:MouseY,[]) } Add(Midi_IO,15475950,427,532) { Point(doSetInstrument) Point(doNoteOff) link(Status,12644644:Value,[]) link(Data1,4797402:Value,[]) link(Data2,15722354:Handle,[(447,520)(524,520)(524,678)(566,678)]) } Add(InfoTip,15798228,238,364) { Info=#4:Midi| Font=[MS Sans Serif,8,1,16711680,1] Width=358 Height=396 } Add(Math,4222463,245,392) { OpType=3 Op2=3 link(onResult,12867110:doOperation,[]) } Add(Math,12867110,287,392) { OpType=35 Op2=1 link(onResult,96318:doEvent1,[]) } Add(Button,1855305,0,595) { Left=10 Top=10 Width=25 Height=25 Font=[Arial,12,0,16777215,204] Caption="?" link(onClick,4298740:doMessage,[]) } Add(Message,4298740,63,595) { Message="Пианино OpenGL для детишек... ПКМ - Вращение; ЛКМ - Играть Автор: tig-rrr Версия: 0.01а 2010 " Caption="Пианино" } Add(LineBreak,6573461,259,588) { Primary=[2299613,-112,-448] } Add(DoData,10675373,308,623) { Data=Integer(1) link(onEventData,15475950:doCloseMidiOut,[(402,629)(402,559)]) } Add(DoData,11436986,364,539) { Data=Integer(1) link(onEventData,15475950:doOpenMidiOut,[]) } Add(Button,1984737,259,623) { Left=505 Top=40 Width=145 Height=30 Caption="закрыть миди выход" link(onClick,10675373:doData,[]) }
еще исправил Точно не знаю как это исправить, но миди-выход не успевает закрыться. Если перед закрытием проги закрывать его кнопкой, то повторный старт работает всегда хорошо.
|