Подержите мое пиво
Вот как вариант с классической отрисовкой ячеек:
Add(MainForm,15131939,133,182) { Width=820 Height=482 Position=1 link(onCreate,9364156:doEvent1,[]) } Add(MTStrTbl,11419602,392,301) { Left=15 Top=25 Width=772 Height=392 Font=[MS Sans Serif,12,0,0,1] Name="testTable" Columns=#9:name1=150|9:name2=100|9:name3=100|8:name4=50| Style=4 Grid=0 Point(Handle) link(onClick,14987181:doWork1,[(475,307)(475,238)(312,238)]) } Add(StrList,3068266,238,140) { Strings=#30:Администрация;Петров;Москва;56|29:Администрация;Иванов;Минск;49|28:Пользователи;Сидоров;Киев;26|29:Пользователи;Смирнов;Киров;36|30:Пользователи;Малевич;Сидней;27|26:Гости;Гзбыштнев;Варшава;34|25:Гости;Волайтос;Вильнус;53|22:Гости;Портос;Мадрид;62|21:Гости;Арамис;Париж;63| Point(doGetIndex) Point(onGetIndex) } Add(MT_String,9368895,294,182) { link(onResult,11529294:doRowAction,[]) } Add(ArrayEnum,924678,252,196) { link(onItem,9368895:doMTString,[]) link(Array,3068266:Array,[]) } Add(PaintBox,15933036,336,259) { Width=0 Height=443 Align=1 Color=-16777211 ClearBeforeDraw=0 Point(doWidth) Point(Width) Point(onMouseDown) Point(MouseY) Point(Handle) link(onBeforeDraw,862705:doDraw,[]) link(onMouseDown,862705:doMouseDown,[]) } Add(MST_RowAction,11529294,336,182) { MSTControl="testTable" } Add(SetParent,2235133,357,350) { link(Handle,15933036:Handle,[]) link(NewParent,11419602:Handle,[(370,345)(426,345)]) } Add(Hub,9364156,182,196) { OutCount=4 link(onEvent1,924678:doEnum,[]) link(onEvent2,2235133:doSetParent,[(234,209)(234,356)]) link(onEvent3,8415824:doColAction,[(243,216)(243,272)]) link(onEvent4,14987181:doWork2,[(227,223)(227,265)]) } Add(MST_ColAction,8415824,252,266) { Action=10 MSTControl="testTable" link(onResult,10871219:doSeparateMT,[]) } Add(MT_MultiData,10871219,294,280) { From=2 Count=1 link(onData1,15933036:doWidth,[(331,286)(331,279)]) } Add(MultiElementEx,862705,392,259) { link(onData,11710124:doMessage,[]) link(Data,642165:Cable,[(398,247)(377,247)(377,323)(342,323)]) } BEGIN_SDK Add(EditMultiEx,16101698,21,21) { WorkCount=#6:doDraw|11:doMouseDown| EventCount=#6:onData| DataCount=#4:Data| Width=986 Height=774 link(doDraw,5906303:doEvent1,[(171,27)(171,139)]) link(doMouseDown,1838298:doEnum,[(95,34)(95,636)]) } Add(LineBreakEx,4308052,588,392) { Caption="bmp" Type=2 } Add(Img_TextInRect,10632373,644,434) { Font=[MS Sans Serif,12,0,0,1] OffsetLeft=4 Alignvertical=2 link(onDraw,7493905:doValue,[(702,440)(702,209)(625,209)(625,174)]) link(Bitmap,4674398:getVar,[]) link(Text,11062118:Var2,[(657,242)(559,242)]) link(Point1,14182416:Var3,[(664,362)]) link(Point2,11477432:Var2,[]) } Add(LineBreakEx,4674398,644,392) { Caption="bmp" Type=2 } Add(MST_ArrayRows,2276481,266,133) { MSTControl="parent.testTable" } Add(MT_MultiData,16707922,308,182) { Count=1 link(onData1,3415084:doEvent1,[]) } Add(MT_MTArrayEnum,8015133,266,182) { link(onItem,16707922:doSeparateMT,[]) link(onEndEnum,2622780:doEvent2,[(305,195)(305,461)]) link(Array,2276481:Strings,[]) } Add(LineBreakEx,9669269,665,280) { Caption="w" Type=2 } Add(Memory,11537028,553,182) { Default=String(?) AddHint(-5,-47,31,13,Default) } Add(Memory,7493905,637,168) { Default=Integer(0) Point(Data) link(Data,2547750:Var1,[(643,159)]) AddHint(0,-27,21,13,Default) } Add(MST_UseEditCtrl,949318,350,42) { MSTControl="parent.testTable" Point(doClientRect) Point(onClientRect) link(onClientRect,1429580:doValue,[]) } Add(If_else,7471250,385,182) { Op2=String(?) link(onTrue,11571070:doWork2,[]) link(onFalse,8830720:doCompare,[]) link(Op1,2665160:Var1,[(391,170)]) AddHint(-1,-47,31,13,Op2) } Add(GetDataEx,11062118,553,217) { link(Data,11537028:Value,[]) } Add(Hub,3415084,350,182) { link(onEvent1,7471250:doCompare,[]) link(onEvent2,4012070:doCalc,[(381,195)(381,125)]) } Add(Hub,2622780,329,448) { InCount=2 OutCount=6 link(onEvent1,10685586:doCalc,[(348,454)(348,321)]) link(onEvent2,15873828:doCompare,[(358,461)(358,384)]) link(onEvent3,2811458:doValue,[(420,468)(420,286)]) link(onEvent4,15724419:doDraw,[(465,475)(465,440)]) link(onEvent5,2896120:doAdd,[(737,482)(737,258)]) link(onEvent6,4231421:doAdd,[(801,489)(801,265)]) } Add(MathParse,10685586,602,315) { DataCount=1 MathStr="%1 *65536" link(onResult,11117395:doCalc,[]) link(X1,7493905:Value,[(608,304)(643,304)]) } Add(MathParse,11117395,665,315) { MathStr="(%1 + 1) + (%2 + 1) *65536" link(X1,9669269:getVar,[]) link(X2,2547750:Var2,[]) } Add(Hub,5906303,196,133) { OutCount=8 link(onEvent1,949318:doClientRect,[(217,139)(217,55)]) link(onEvent2,10252066:In,[]) link(onEvent3,9732778:In,[]) link(onEvent4,15596901:In,[]) link(onEvent5,6626142:In,[]) link(onEvent6,8370428:In,[]) link(onEvent7,3842368:In,[]) link(onEvent8,8015133:doEnum,[]) } Add(MT_MultiMem,1429580,672,70) { From=3 Count=1 } Add(GetDataEx,14182416,602,357) { link(Data,10685586:Result,[]) } Add(GetDataEx,11477432,665,364) { link(Data,11117395:Result,[]) } Add(GetDataEx,2547750,672,154) { link(Data,4012070:Result,[]) } Add(If_else,8830720,434,189) { link(onFalse,4664640:doEvent1,[]) link(Op2,2665160:Var2,[]) } Add(GetDataEx,2665160,441,165) { Angle=1 link(Data,11062118:Var1,[(546,170)(546,222)]) } Add(Hub,4664640,476,196) { link(onEvent1,2622780:doEvent1,[(503,202)(503,254)(324,254)(324,454)]) link(onEvent2,11571070:doWork3,[(508,209)]) } Add(HubEx,11571070,504,182) { link(onEvent,11537028:doValue,[]) } Add(MathParse,4012070,672,119) { DataCount=1 MathStr="%0 + %1 + 1" Default=1 Point(doClear) link(X1,1429580:Value1,[]) } Add(LineBreak,7210630,630,126) { Caption="cl" link(Out,4012070:doClear,[]) Primary=[10252066,-406,14] } Add(LineBreak,3233183,511,189) { Caption="cl" link(Out,11537028:doClear,[]) Primary=[9732778,-287,-42] } Add(LineBreak,10145184,595,175) { Caption="cl" link(Out,7493905:doClear,[]) Primary=[15596901,-371,-21] } Add(LineBreakEx,1385560,21,112) { Caption="bmp" Type=3 link(_Data,15510110:Wire1,[]) } Add(LineBreakEx,10454381,28,98) { Caption="w" Type=3 link(_Data,15510110:Wire2,[]) } Add(IntegerArray,851710,777,70) { @Hint=#7:Индексы| IntArray=[] AddHint(-3,-23,61,13,@Hint) } Add(ArrayRW,2896120,756,238) { link(Array,1611755:getVar,[]) link(Value,16432057:Var3,[(776,226)]) } Add(LineBreak,12244025,735,84) { Caption="cl" link(Out,851710:doClear,[]) Primary=[6626142,-511,77] } Add(IntegerArray,1664219,882,77) { @Hint=#6:Высоты| IntArray=[] AddHint(-16,-29,55,13,@Hint) } Add(ArrayRW,4231421,819,245) { link(Array,12860788:getVar,[]) link(Value,2547750:Var3,[(839,159)]) } Add(LineBreak,5418522,840,91) { Caption="cl" link(Out,1664219:doClear,[]) Primary=[8370428,-616,77] } Add(LineBreakEx,1611755,756,203) { Caption="IS" Type=2 } Add(LineBreakEx,7559039,777,112) { Caption="IS" Type=3 link(_Data,851710:Array,[]) } Add(LineBreakEx,12860788,819,217) { Caption="HS" Type=2 } Add(LineBreakEx,5952417,882,119) { Caption="HS" Type=3 link(_Data,1664219:Array,[]) } Add(CableVar,15510110,21,56) { Count=3 link(Cable,16101698:Data,[]) } Add(LineBreakEx,12327106,105,595) { Caption="HS" Type=2 } Add(ArrayEnum,1838298,105,630) { link(onItem,9274200:doCompare,[]) link(onEndEnum,16539140:doClear,[(146,643)(146,601)]) link(Array,12327106:getVar,[]) } Add(Memory,16539140,154,588) { Default=Integer(0) AddHint(2,-23,21,13,Default) } Add(If_else,9274200,154,630) { Type=1 link(onTrue,2984601:doCompare,[]) link(onFalse,8763058:doWork3,[(193,643)]) link(Op1,16539140:Value,[]) } Add(LineBreak,9837558,35,84) { Caption="mY" Type=1 link(Data,15510110:Wire3,[]) Primary=[7412628,175,511] } Add(If_else,2984601,203,630) { Type=2 link(onTrue,1557144:doEvent1,[]) link(onFalse,8763058:doWork2,[(247,643)(247,587)]) link(Op2,7412628:Var,[]) } Add(ArrayRW,15092897,294,630) { link(onRead,10258483:doEvent1,[]) link(Array,13831627:getVar,[]) link(Index,14831096:Var1,[(307,583)]) } Add(LineBreakEx,13831627,294,595) { Caption="IS" Type=2 } Add(HubEx,8763058,189,581) { Angle=2 link(onEvent,16539140:doValue,[(147,587)(147,594)]) } Add(Hub,1557144,266,630) { link(onEvent1,15092897:doRead,[]) link(onEvent2,1838298:doStop,[(285,643)(285,680)(93,680)(93,643)]) } Add(MST_ArrayRows,14894588,630,595) { MSTControl="parent.testTable" } Add(MT_MTArrayRW,11157795,630,644) { link(onRead,5615754:doGet,[]) link(Array,14894588:Strings,[]) } Add(For,9226679,539,644) { IncludeEnd=1 link(onEvent,11157795:doRead,[]) link(onStop,125369:doEvent1,[]) link(Start,2731308:Value,[]) link(End,15092897:Item,[(552,628)(521,628)(521,694)(300,694)]) } Add(Memory,2731308,539,595) { Default=Integer(0) AddHint(3,-23,21,13,Default) } Add(If_else,16222556,364,637) { Type=5 Op2=Integer(0) link(onTrue,4319442:doEvent1,[(404,643)(404,601)]) link(onFalse,12195159:doWork2,[]) link(Op1,14831096:Var2,[]) AddHint(4,-31,21,13,Op2) } Add(GetDataEx,14831096,364,578) { Angle=1 link(Data,16585060:Var1,[]) } Add(ArrayRW,15779171,490,595) { link(onRead,2731308:doValue,[]) link(Array,6836507:getVar,[]) } Add(LineBreakEx,6836507,490,560) { Caption="IS" Type=2 } Add(Math,9989628,441,595) { OpType=1 Op2=1 link(onResult,15779171:doRead,[]) link(Op1,16585060:Var3,[(447,583)]) AddHint(1,-22,30,13,Op2) } Add(GetDataEx,16585060,401,578) { Angle=2 link(Data,1838298:Index,[(407,708)(118,708)]) } Add(Hub,4319442,413,595) { link(onEvent1,9989628:doOperation,[]) link(onEvent2,12195159:doWork1,[(431,608)]) } Add(HubEx,12195159,427,644) { link(onEvent,9226679:doFor,[]) } Add(StrList,6559097,770,644) { } Add(Hub,125369,595,651) { OutCount=4 link(onEvent1,2731308:doClear,[(615,657)(615,623)(549,623)(549,608)]) link(onEvent3,9453041:doData,[(623,671)(623,706)]) link(onEvent4,6559097:doClear,[(689,678)(689,657)]) } Add(MT_String,4882649,714,644) { link(onResult,6559097:doAdd,[]) } Add(DoData,9453041,770,700) { link(onEventData,16101698:onData,[(965,706)(965,27)]) link(Data,6559097:Text,[]) } Add(MT_Get,5615754,672,644) { link(onData,4882649:doStr,[]) } Add(InfoTip,12465489,63,525) { Info=#39:По массиву высот определяем куда нажали| Width=190 Height=193 } Add(InfoTip,6316073,266,525) { Info=#55:По массиву индексов определяем с какого по какую строку| Width=316 Height=193 } Add(Img_Rectangle,15724419,588,434) { Style=1 Color=-16777196 Point(Point1) Point(Point2) Point(BgColor) link(onDraw,10632373:doDraw,[]) link(Bitmap,4308052:getVar,[]) link(Point1,14182416:Var2,[]) link(Point2,11477432:Var1,[(615,369)]) link(BgColor,4623544:Var,[(622,422)(538,422)]) } Add(MST_SelectRow,7047176,378,280) { MSTControl="parent.testTable" } Add(If_else,15873828,364,378) { Type=2 link(onTrue,7168031:doCompare,[(412,384)(412,363)]) link(onFalse,968574:doWork2,[]) link(Op1,8771348:Var2,[]) link(Op2,9281998:Var1,[(377,341)]) } Add(GetDataEx,8771348,364,221) { Angle=3 link(Data,8015133:Index,[(279,226)]) } Add(GetIndexData,4623544,532,378) { link(Data1,5559980:Result,[(538,370)(510,370)]) link(Data2,4635898:Result,[(545,370)(552,370)]) } Add(SelectColor,5559980,504,329) { Color=-16777196 } Add(ChanelToIndex,14763634,490,378) { link(onIndex,4623544:doIndex,[]) } Add(SelectColor,4635898,546,329) { Color=-16777211 } Add(If_else,7168031,427,357) { Type=4 link(onTrue,14763634:doWork1,[(475,363)(475,384)]) link(onFalse,968574:doWork1,[(466,370)]) link(Op1,9281998:Var3,[(433,341)]) link(Op2,2811458:Value,[]) } Add(GetDataEx,9281998,385,336) { link(Data,7047176:Index,[]) } Add(HubEx,968574,462,385) { link(onEvent,14763634:doWork2,[]) } Add(Memory,2811458,434,280) { Point(Data) link(Data,16432057:Var2,[]) } Add(GetDataEx,16432057,434,221) { Angle=3 link(Data,8771348:Var3,[]) } Add(LineBreak,1085413,385,259) { Caption="cl" link(Out,2811458:doClear,[(425,265)(425,293)]) Primary=[3842368,-161,-84] } Add(Hub,10258483,336,630) { link(onEvent1,2402282:doOperation,[(357,636)(357,545)]) link(onEvent2,16222556:doCompare,[]) } Add(LineBreak,15441562,329,280) { Caption="sel" link(Out,7047176:doSelect,[]) Primary=[9846043,77,259] } Add(Math,2402282,364,539) { OpType=1 Op2=1 link(onResult,9846043:In,[]) AddHint(35,14,30,13,Op2) } END_SDK Add(CableData,642165,336,301) { Count=3 link(Wire1,15933036:Bitmap,[]) link(Wire2,15933036:Width,[]) link(Wire3,15933036:MouseY,[]) } Add(Message,11710124,434,259) { } Add(HubEx,14987181,308,259) { link(onEvent,15933036:doRefresh,[]) }
Вот как кнопки (отрисовку нажатия не реализовал, но там не сложно):
Add(MainForm,2953706,119,273) { Width=820 Height=482 Position=1 link(onCreate,9364156:doEvent1,[]) } Add(MTStrTbl,11419602,378,392) { Left=15 Top=25 Width=772 Height=392 Font=[MS Sans Serif,12,0,0,1] Name="testTable" Columns=#9:name1=150|9:name2=100|9:name3=100|8:name4=50| Style=4 Grid=0 Point(Handle) } Add(StrList,3068266,224,231) { Strings=#30:Администрация;Петров;Москва;56|29:Администрация;Иванов;Минск;49|28:Пользователи;Сидоров;Киев;26|29:Пользователи;Смирнов;Киров;36|30:Пользователи;Малевич;Сидней;27|26:Гости;Гзбыштнев;Варшава;34|25:Гости;Волайтос;Вильнус;53|22:Гости;Портос;Мадрид;62|21:Гости;Арамис;Париж;63| Point(doGetIndex) Point(onGetIndex) } Add(MT_String,9368895,280,273) { link(onResult,11529294:doRowAction,[]) } Add(ArrayEnum,924678,238,287) { link(onItem,9368895:doMTString,[]) link(Array,3068266:Array,[]) } Add(PaintBox,15933036,322,350) { Width=0 Height=443 Align=1 ClearBeforeDraw=0 Point(doWidth) Point(Width) Point(onMouseDown) Point(MouseY) Point(Handle) link(onBeforeDraw,862705:doDraw,[]) link(onMouseDown,862705:doMouseDown,[]) } Add(MST_RowAction,11529294,322,273) { MSTControl="testTable" } Add(SetParent,2235133,343,441) { link(Handle,15933036:Handle,[]) link(NewParent,11419602:Handle,[(356,433)(412,433)]) } Add(Hub,9364156,168,287) { OutCount=4 link(onEvent1,924678:doEnum,[]) link(onEvent2,2235133:doSetParent,[(220,300)(220,447)]) link(onEvent3,8415824:doColAction,[(229,307)(229,363)]) link(onEvent4,15933036:doRefresh,[(213,314)(213,356)]) } Add(MST_ColAction,8415824,238,357) { Action=10 MSTControl="testTable" link(onResult,10871219:doSeparateMT,[]) } Add(MT_MultiData,10871219,280,371) { From=2 Count=1 link(onData1,15933036:doWidth,[(317,377)(317,370)]) } Add(MultiElementEx,862705,378,350) { link(Data,642165:Cable,[(384,338)(363,338)(363,414)(328,414)]) link(onData,11710124:doMessage,[]) } BEGIN_SDK Add(EditMultiEx,16101698,21,21) { WorkCount=#6:doDraw|11:doMouseDown| EventCount=#6:onData| DataCount=#4:Data| Width=986 Height=697 link(doDraw,5906303:doEvent1,[(171,27)(171,146)]) link(doMouseDown,1838298:doEnum,[(95,34)(95,608)]) } Add(Img_Edge,6159473,497,434) { link(onDraw,10632373:doDraw,[]) link(Bitmap,4308052:getVar,[]) link(Point1,14182416:Var2,[]) link(Point2,11477432:Var1,[(517,369)]) } Add(LineBreakEx,4308052,497,392) { Caption="bmp" Type=2 } Add(Img_TextInRect,10632373,546,434) { Font=[MS Sans Serif,12,0,0,1] OffsetLeft=4 Alignvertical=2 link(onDraw,7493905:doValue,[(601,440)(601,174)]) link(Bitmap,4674398:getVar,[]) link(Text,11062118:Var2,[]) link(Point1,14182416:Var3,[(566,362)]) link(Point2,11477432:Var2,[]) } Add(LineBreakEx,4674398,546,392) { Caption="bmp" Type=2 } Add(MST_ArrayRows,2276481,266,133) { MSTControl="parent.testTable" } Add(MT_MultiData,16707922,308,182) { Count=1 link(onData1,3415084:doEvent1,[]) } Add(MT_MTArrayEnum,8015133,266,182) { link(onItem,16707922:doSeparateMT,[]) link(onEndEnum,2622780:doEvent2,[(305,195)(305,468)]) link(Array,2276481:Strings,[]) } Add(LineBreakEx,9669269,567,280) { Caption="w" Type=2 } Add(Memory,11537028,553,182) { Default=String(?) AddHint(-5,-47,31,13,Default) } Add(Memory,7493905,637,168) { Default=Integer(0) Point(Data) link(Data,2547750:Var1,[(643,159)]) AddHint(0,-27,21,13,Default) } Add(MST_UseEditCtrl,949318,350,42) { MSTControl="parent.testTable" Point(doClientRect) Point(onClientRect) link(onClientRect,1429580:doValue,[]) } Add(If_else,7471250,385,182) { Op2=String(?) link(onTrue,11571070:doWork2,[]) link(onFalse,8830720:doCompare,[]) link(Op1,2665160:Var1,[(391,170)]) AddHint(-1,-47,31,13,Op2) } Add(GetDataEx,11062118,553,217) { link(Data,11537028:Value,[]) } Add(Hub,3415084,350,182) { link(onEvent1,7471250:doCompare,[]) link(onEvent2,4012070:doCalc,[(381,195)(381,125)]) } Add(Hub,2622780,434,455) { InCount=2 OutCount=4 link(onEvent1,10685586:doCalc,[(476,461)(476,321)]) link(onEvent2,6159473:doDraw,[(486,468)(486,440)]) link(onEvent3,2896120:doAdd,[(743,475)(743,258)]) link(onEvent4,4231421:doAdd,[(806,482)(806,265)]) } Add(MathParse,10685586,504,315) { DataCount=1 MathStr="%1 *65536" link(onResult,11117395:doCalc,[]) link(X1,7493905:Value,[(510,268)(643,268)]) } Add(MathParse,11117395,567,315) { MathStr="%1 + %2 *65536" link(X1,9669269:getVar,[]) link(X2,2547750:Var2,[(580,299)(678,299)]) } Add(Hub,5906303,196,140) { OutCount=7 link(onEvent1,949318:doClientRect,[(217,146)(217,55)]) link(onEvent2,10252066:In,[]) link(onEvent3,9732778:In,[]) link(onEvent4,15596901:In,[]) link(onEvent5,6626142:In,[]) link(onEvent6,8370428:In,[]) link(onEvent7,8015133:doEnum,[]) } Add(MT_MultiMem,1429580,672,70) { From=3 Count=1 } Add(GetDataEx,14182416,504,357) { link(Data,10685586:Result,[]) } Add(GetDataEx,11477432,567,364) { link(Data,11117395:Result,[]) } Add(GetDataEx,2547750,672,154) { link(Data,4012070:Result,[]) } Add(If_else,8830720,434,189) { link(onFalse,4664640:doEvent1,[]) link(Op2,2665160:Var2,[]) } Add(GetDataEx,2665160,441,165) { Angle=1 link(Data,11062118:Var1,[(546,170)(546,222)]) } Add(Hub,4664640,476,196) { link(onEvent1,2622780:doEvent1,[(503,202)(503,254)(408,254)(408,461)]) link(onEvent2,11571070:doWork3,[(508,209)]) } Add(HubEx,11571070,504,182) { link(onEvent,11537028:doValue,[]) } Add(MathParse,4012070,672,119) { DataCount=1 MathStr="%0 + %1 + 1" Default=1 Point(doClear) link(X1,1429580:Value1,[]) } Add(LineBreak,16363479,630,126) { Caption="cl" link(Out,4012070:doClear,[]) Primary=[10252066,-406,21] } Add(LineBreak,9520150,511,189) { Caption="cl" link(Out,11537028:doClear,[]) Primary=[9732778,-287,-35] } Add(LineBreak,11274038,595,175) { Caption="cl" link(Out,7493905:doClear,[]) Primary=[15596901,-371,-14] } Add(LineBreakEx,1385560,21,112) { Caption="bmp" Type=3 link(_Data,15510110:Wire1,[]) } Add(LineBreakEx,10454381,28,98) { Caption="w" Type=3 link(_Data,15510110:Wire2,[]) } Add(IntegerArray,851710,777,70) { @Hint=#7:Индексы| IntArray=[] AddHint(-3,-23,61,13,@Hint) } Add(ArrayRW,2896120,756,238) { link(Array,1611755:getVar,[]) link(Value,8015133:Index,[(776,226)(279,226)]) } Add(LineBreak,11956720,735,84) { Caption="cl" link(Out,851710:doClear,[]) Primary=[6626142,-511,84] } Add(IntegerArray,1664219,882,77) { @Hint=#6:Высоты| IntArray=[] AddHint(-16,-29,55,13,@Hint) } Add(ArrayRW,4231421,819,245) { link(Array,12860788:getVar,[]) link(Value,2547750:Var3,[(839,159)]) } Add(LineBreak,10176923,840,91) { Caption="cl" link(Out,1664219:doClear,[]) Primary=[8370428,-616,84] } Add(LineBreakEx,1611755,756,203) { Caption="IS" Type=2 } Add(LineBreakEx,7559039,777,112) { Caption="IS" Type=3 link(_Data,851710:Array,[]) } Add(LineBreakEx,12860788,819,217) { Caption="HS" Type=2 } Add(LineBreakEx,5952417,882,119) { Caption="HS" Type=3 link(_Data,1664219:Array,[]) } Add(CableVar,15510110,21,56) { Count=3 link(Cable,16101698:Data,[]) } Add(LineBreakEx,12327106,105,567) { Caption="HS" Type=2 } Add(ArrayEnum,1838298,105,602) { link(onItem,9274200:doCompare,[]) link(onEndEnum,16539140:doClear,[(146,615)(146,573)]) link(Array,12327106:getVar,[]) } Add(Memory,16539140,154,560) { Default=Integer(0) AddHint(2,-23,21,13,Default) } Add(If_else,9274200,154,602) { Type=1 link(onTrue,2984601:doCompare,[]) link(onFalse,8763058:doWork3,[(193,615)]) link(Op1,16539140:Value,[]) } Add(LineBreak,571556,35,84) { Caption="mY" Type=1 link(Data,15510110:Wire3,[]) Primary=[7412628,175,483] } Add(If_else,2984601,203,602) { Type=2 link(onTrue,1557144:doEvent1,[]) link(onFalse,8763058:doWork2,[(247,615)(247,559)]) link(Op2,7412628:Var,[]) } Add(ArrayRW,15092897,308,602) { link(onRead,16222556:doCompare,[]) link(Array,13831627:getVar,[]) link(Index,14831096:Var1,[(321,548)]) } Add(LineBreakEx,13831627,308,567) { Caption="IS" Type=2 } Add(HubEx,8763058,189,553) { Angle=2 link(onEvent,16539140:doValue,[(147,559)(147,566)]) } Add(Hub,1557144,280,602) { link(onEvent1,15092897:doRead,[]) link(onEvent2,1838298:doStop,[(307,615)(307,651)(93,651)(93,615)]) } Add(MST_ArrayRows,14894588,623,560) { MSTControl="parent.testTable" } Add(MT_MTArrayRW,11157795,623,609) { link(onRead,5615754:doGet,[]) link(Array,14894588:Strings,[]) } Add(For,9226679,539,609) { IncludeEnd=1 link(onEvent,11157795:doRead,[]) link(onStop,125369:doEvent1,[]) link(Start,2731308:Value,[]) link(End,15092897:Item,[(552,600)(528,600)(528,666)(314,666)]) } Add(Memory,2731308,539,560) { Default=Integer(0) AddHint(3,-23,21,13,Default) } Add(If_else,16222556,364,602) { Type=5 Op2=Integer(0) link(onTrue,4319442:doEvent1,[(404,608)(404,566)]) link(onFalse,12195159:doWork2,[]) link(Op1,14831096:Var2,[]) AddHint(4,-31,21,13,Op2) } Add(GetDataEx,14831096,364,543) { Angle=1 link(Data,16585060:Var1,[]) } Add(ArrayRW,15779171,490,560) { link(onRead,2731308:doValue,[]) link(Array,6836507:getVar,[]) } Add(LineBreakEx,6836507,490,525) { Caption="IS" Type=2 } Add(Math,9989628,441,560) { OpType=1 Op2=1 link(onResult,15779171:doRead,[]) link(Op1,16585060:Var3,[(447,548)]) AddHint(1,-22,30,13,Op2) } Add(GetDataEx,16585060,401,543) { Angle=2 link(Data,1838298:Index,[(407,680)(118,680)]) } Add(Hub,4319442,413,560) { link(onEvent1,9989628:doOperation,[]) link(onEvent2,12195159:doWork1,[(431,573)]) } Add(HubEx,12195159,427,609) { link(onEvent,9226679:doFor,[]) } Add(StrList,6559097,763,609) { } Add(Hub,125369,588,616) { OutCount=3 link(onEvent1,2731308:doClear,[(608,622)(608,595)(542,595)(542,573)]) link(onEvent2,9453041:doData,[(608,629)(608,671)]) link(onEvent3,6559097:doClear,[(755,636)(755,622)]) } Add(MT_String,4882649,707,609) { link(onResult,6559097:doAdd,[]) } Add(DoData,9453041,763,665) { link(onEventData,16101698:onData,[(965,671)(965,27)]) link(Data,6559097:Text,[]) } Add(MT_Get,5615754,665,609) { link(onData,4882649:doStr,[]) } Add(InfoTip,12465489,63,497) { Info=#39:По массиву высот определяем куда нажали| Width=190 Height=193 } Add(InfoTip,6316073,280,497) { Info=#55:По массиву индексов определяем с какого по какую строку| Width=302 Height=200 } END_SDK Add(CableData,642165,322,392) { Count=3 link(Wire1,15933036:Bitmap,[]) link(Wire2,15933036:Width,[]) link(Wire3,15933036:MouseY,[]) } Add(Message,11710124,420,350) { }
У такого способа на данный момент одна проблема, нет возможности используя штатные компоненты отловить события полос прокрутки (ScrollBar-ов) таблицы. Так что если данные таблицы в окно, то подойдет.
|