Когда то пришлось скрипты писать для шейдеров (GLSL, HLSL ) и вообще Lua - Python - OpenGL - Vulkan - Direct3D 12 то делал такую штуку: (посмотреть можно тут https://gamedev.ru/ я там забанен по политическим соображениям, а посему не могу тчный адрес дать)
Add(MainForm,2953706,21,105)
{
Width=700
Height=649
}
Add(StrListEx,1589728,763,168)
{
FileName="qwerty.txt"
StoreFormat=1
Point(doGetString)
Point(onGetString)
Point(IdxCur)
Point(doInsert)
Point(doSaveToStream)
Point(Stream)
Point(doLoadFromStream)
link(onStream,14117105:doCompress,[])
link(Str,5196945:Text,[(769,165)(734,165)(733,133)])
link(onGetString,5196945:doText,[(807,188)(807,150)(716,150)(716,111)])
}
Add(Scintilla,5196945,728,84)
{
Left=2
Width=612
Height=642
Align=5
akRight=0
akBottom=0
Font=[Courier New,11,0,0,1]
WinStyle=2
Styles=#17:// Язык подсветки|14:@1 Language=15|0:|73:// Настройка стиля синтаксиса подсветки в соответствии с выбранным языком|98:// 1-синтаксическая инструкция, стили шрифта 2-полужирный, 3-курсив, 4-подчёркнутый, 5-цвет шрифта|83:# LUA_DEFAULT=0, FontBold=False, FontItalic=False, FontUnderline=False, FontColor=0|87:# LUA_COMMENT=1, FontBold=False, FontItalic=True, FontUnderline=False, FontColor=39680|91:# LUA_COMMENTLINE=2, FontBold=False, FontItalic=True, FontUnderline=False, FontColor=39680|90:# LUA_COMMENTDOC=3, FontBold=False, FontItalic=True, FontUnderline=False, FontColor=39680|88:# LUA_NUMBER=4, FontBold=False, FontItalic=False, FontUnderline=False, FontColor=5614080|87:# LUA_WORD=5, FontBold=True, FontItalic=False, FontUnderline=False, FontColor=16711680|88:# LUA_STRING=6, FontBold=False, FontItalic=True, FontUnderline=False, FontColor=10849684|90:# LUA_CHARACTER=7, FontBold=False, FontItalic=True, FontUnderline=False, FontColor=9329315|95:# LUA_LITERALSTRING=8, FontBold=False, FontItalic=True, FontUnderline=False, FontColor=11311727|90:# LUA_PREPROCESSOR=9, FontBold=False, FontItalic=False, FontUnderline=False, FontColor=255|92:# LUA_OPERATOR=10, FontBold=False, FontItalic=False, FontUnderline=False, FontColor=11534336|87:# LUA_IDENTIFIER=11, FontBold=False, FontItalic=False, FontUnderline=False, FontColor=0|88:# LUA_STRINGEOL=12, FontBold=False, FontItalic=False, FontUnderline=False, FontColor=255|89:# LUA_WORD2=13, FontBold=False, FontItalic=False, FontUnderline=False, FontColor=12615680|89:# LUA_WORD3=14, FontBold=False, FontItalic=False, FontUnderline=False, FontColor=16711808|88:# LUA_WORD4=15, FontBold=False, FontItalic=False, FontUnderline=False, FontColor=8355584|84:# LUA_LABEL=20, FontBold=False, FontItalic=False, FontUnderline=False, FontColor=255|
VLines=0
MarginNumFore=8421504
WrapVisualFlags=0
ScrollBars=2
Point(doAlign)
Point(doEditingSelected)
Point(GetModify)
link(onChange,230804:doWork5,[(772,90)(772,141)(477,141)(477,216)])
}
Add(ChildPanel,230804,497,182)
{
link(onEvent1,16326480:doEvent1,[(559,188)(559,181)])
link(onEvent2,8829690:doEvent1,[])
link(onEvent3,16634792:doWork2,[(580,202)(580,97)])
link(onEvent4,1589728:doGetString,[(583,209)(583,216)])
link(onEvent5,5412065:doEvent1,[(548,216)(548,251)(443,251)(443,286)])
link(onEvent6,13536464:doData,[(555,223)(555,342)])
link(onEvent7,6025116:doEvent1,[(559,230)(559,412)])
link(onEvent8,11639333:doWork2,[(619,237)(619,510)])
link(onEvent10,12193115:doEvent1,[(601,251)(601,391)])
link(onEvent12,12977821:doDataDelete,[(695,265)(695,517)])
link(onEvent13,5745799:doEvent1,[(579,272)(579,447)])
}
BEGIN_SDK
Add(EditMulti,10975728,14,21)
{
EventCount=13
WorkCount=7
DataCount=1
VarCount=2
Width=825
Height=417
link(doWork1,9533315:doEvent1,[(21,27)(21,160)])
link(doWork2,14291369:doWork2,[(53,34)(53,255)])
link(doWork3,5029603:doData,[(144,41)(144,237)])
link(doWork4,10232674:doWork2,[(42,48)(42,262)])
link(doWork5,6916405:doTimer,[(94,55)(94,356)])
link(doWork6,1825006:doWork1,[(627,62)])
link(doWork7,12675393:doWork1,[(74,69)])
link(Var1,6254129:Var2,[(20,310)(127,310)])
link(Var2,5832627:Var2,[(27,271)(76,271)])
}
Add(Panel,7783771,56,371)
{
Left=615
Width=77
Height=622
Align=3
akLeft=1
akRight=0
akBottom=0
WinStyle=1
BevelInner=0
}
Add(BitBtn,5762611,189,154)
{
Left=8
Top=65
Width=24
Height=24
Hint="Добавить в список шаблонов"
Frame=1
Caption=""
Data=Integer(0)
Bitmap=[ZIP3609000078DA73F235E36400033320D600620928666450804840E591C1FFFFFF47F1281ED1183D3F303034E0C5D8F410633EB9EE22551D31EEC7653E03C31530A695FB19180E8131B5DDCFC0B0112BA696FB1918E663C5D40FFF3E30A65DF81783313DD3FF281EC583150300A427B14C]
Point(doBitmap)
link(onClick,13128007:doEvent1,[])
}
Add(BitBtn,8383984,504,70)
{
Left=8
Top=35
Width=24
Height=24
Hint="Присвоить текст элементу схемы"
Frame=1
Caption=""
Bitmap=[ZIP3604000078DA8D935B48936118C72B8A984278D145774DC988ECC61231F426ED4250AF04EF240A99E8586CCB5021B339B7B91235D3D225EA85A2489BBBF03C6626529EF0300FA89073EADCDC9C877D9BFB76FCF7EED3451A410FFC788FBFE73DF12667C45FBEC0443CE10E21E2948B17D82703647CECDA09FF135C2E37462010BC6C6F6F9F6571D860E54582C589C4BFE667676787171616661415157D1289441B0D0D0D502A95989F9F072B978DB0C924264773737342C8E17038D70B0A0AF8C5C5C58372B9DCD5DADA8A9E9E1E8C8D8D617A7A1ACBCBCBD0E916CEF85D5D5D7D219FB8731D1D1DD06834D06AB5181919C1D4D4140C0603A272E270232786212C371261E3896071C919F24FC9B909B158EC0FAD633299E0743AE1F5B8E1B01FE26E5E222AB7DBF042FF1E694B42444D6630397EF38C8D929212CD1C39DFE2820E2B8B0B18FF3E8AD1AF1AE86667709F978C7BCF9318A2F90F91B95A8C88BCDB08271EC31336783CDED5D2D2D2CFE237A5CAE1C17E6CADAFC2BCB50EF3F606760916A3017BA66DC4F293F16A5381E8FC78A8542A5F4A4ACAA53FEFFE9D54F4B4BF570DAB71030716236CE62DC2266C26036C961DC6FFB0F385F1D56AF5D1F9B7ABAA908A1667C6E1D8DF05C56006653393B61976DB0E1284A988E33F462CEF11140AC5DA79BFA652AAA4AC46789C47A0A97DD0761BDCA43CDE3711CC7091B68BB2E1E7CA12C89BABFE5A5F2E5986F7183E9A8297B6C3E7B2C37D6481C77148EA14290FE073EEE1C7372DB2B2B26ACFFB7575B57A90F093B7F3D10E92EA08011FA9BB9D644F07C4DF47C04D61583380B4F4F48F6565650FC83EAE84FCEAEA9AB513DF05BF8F4680E4F106F3B828A60CE641C08BD99969080442281A1B41DE6D20E4CBE56F876857708E1F3E0FCD10F0BA11204EB08F81044DD3E8EEEE4667670764B28A40C86F6A6A4AD50C0DE17C04E75BAC56ACEBF5E41FE830313181BEBE5E34362A20140ADBCEDE41DDEB9696D6E3FAFA7A4F555595592A95EAC83F1C292F2F5748249232994C964FEA99A43F91FCD15B41E717556D6271]
Point(doBitmap)
link(onClick,10975728:onEvent6,[(586,76)(586,62)])
}
Add(BitBtn,9756900,189,189)
{
Left=45
Top=65
Width=24
Height=24
Hint="Удалить из списка шаблонов"
Frame=1
Caption=""
Data=Integer(3)
Bitmap=[ZIP3609000078DA73F235E36400033320D600620928666450804840E591C1FFFFFF47F1281ED1183D3F303034E0C5D8F410633EB9EE22551D31EEA7C4FCC1E87E06868D5831B5DCCFC0301F2B1E4EE14FABF43F8A47F160C5006D1DC406]
Point(doBitmap)
link(onClick,12093092:doEvent1,[])
}
Add(UpDown,185390,49,28)
{
Left=8
Top=5
Width=24
Height=24
Hint="Выбор шаблона из списка"
Point(doMax)
link(onPosition,12485766:doEvent1,[])
}
Add(DoData,250609,273,189)
{
link(onEventData,4990205:doWork2,[])
link(Data,3987778:Var3,[(279,100)])
}
Add(Hub,12093092,245,189)
{
link(onEvent1,250609:doData,[])
link(onEvent2,14905684:doData,[(266,202)(266,223)])
}
Add(DoData,14905684,273,217)
{
Data=Integer(0)
link(onEventData,6890595:doWork3,[(317,223)(316,217)])
}
Add(BitBtn,1096439,294,287)
{
Left=8
Top=175
Width=24
Height=24
Hint="Добавить новый список шаблонов"
Frame=1
Caption=""
Data=String(templates.pat)
Bitmap=[ZIP3609000078DAED94BD6BC2401887533F8AD81AB5A285A2E268E9EE1FD051283875EDD0A5505C0C38E8E2900E821D0A19B3065C1C3338642B590A376674CD986E193ABC7DEF2EB189895FA85B038F24973CBFFBDD2578FFD04A09EC68214DA4E0712634F80DBCFF2972FC0304008A2ECB7BE3BB145353011C0B5CDB047761203AB8D60CD1C0212AA22C712D75AD5F1073904C267886A5077C1532E74948A712EC3CE2CF34F46DF445EC40603CE8222F30EE3F234F20F71E9957BEBA5CEFBB36D4AB37CCE7EB30BD75F0B5502F9FCBB235ACFA449FE1890B8D5A155D0BC6A33ED20BF5A019E95432767E0BFDEF1F80BBDB265B07CD08F730985F10B36C4F22BEA133BF51AF630D07DEE5C15F875197F5A01917D90CCB59E7D7EA0DF45D9611EAE175A894F26C4F56FD85E7972BD7902F147906FAE02C961995529141F733E29BDC0F12CCE05860630FD388F6B7637C9EE130680753C3F7A64C409FC83BFB2C03DFAB4D081813091C1DD1DA60CAAF21DF21C65A9F625B044C65881F9A04449142AE3FFF72DF63A0F3539FA872C4F57D8784A163FE387DBF863C8CBAF82BB585D0E8F2BFC1BBFEC2F3B9B0F9994D6CCB8F63F5994E4788B06BFE21FD69F62EFDA7783D0D8C1D6B7FE65EAE8A7C206FDEF83EF9DBF6F6D0FEC2E874FBEF6707E738E6F773ACFC53F5DF678E7DBD7F40F805E5A5FD1F]
Point(doBitmap)
Point(doEnabled)
link(onClick,10509481:doEvent1,[])
}
Add(BitBtn,4429309,154,49)
{
Left=45
Top=35
Width=24
Height=24
Hint="Сохранить изменения в шаблоне"
Frame=1
Caption=""
Data=Integer(3)
Bitmap=[ZIP3609000078DAB592ED4F9B5518C66F13FF00FF043FFA072C5B821F4C96B828999B0BB8928126BA646E98E0086C54B210375B978C5A942D6C3A86A8082B1664B4B175B4435A680BF4F5815A606528EF63B494BE17682FCFF374854258A51F76925FCEEB759DFBBECF39FADEE157496887196F305E7BCE2BF47A7AE3F97E76438E76F9CD02288E1D43875C0EBD528961B31966A7136D2525F8F1D021B49E38914B8EF9BA1AF41717A3B7B111FAD2522C3E7E8CD85612AAF3E7D15550806EB697AB4D892BA13DF93EC6D46AF49695A1BDAD0D73910854E5E5B87FE408BAB2F4DF9C39899A77DEC2A5C2A3A878F76D483F2A86A3F23358442518ADA880EBE245982A2B61AAAA82E1F469984522749E3AB5ADB7DF6B426A791C9B332348CE58B034A8C4E0271F62E42B0938AD161C8B818F634CA502A7D3C17EEE1C1459F9DB3B7E42F28916B03601B6263CD3D4C3507606DC9F0FB1120CC23D39090FCB7F7C62022976FE514D0D3A8F1FDFD6CF6814D85A9D02E62CC0B2032B430A184A4570F6AA10D9D880CFE783DFEFC7EAEAAA30EFAFAEDEA55F19E8C156781178E662132B9E5A7A601015C1F94025D4DC1F58473416438C87CD2DB5B5E8CBAA5F705483E4820DE03A80F14E842CED505F11C3A555837398E134EA71ABA10152A914D76532488A8A76BD55DCA5637A3BD3B703630AC67DF680ACE7EE010B066CDA3439DF3AE5D12319F5034FDDAC06C34CC3EAB038C87A235BB32261D6E6D4E3C95F69BD7F1AF079590D3CC09283F52CA6A13EA0F3D7DCFA592352B326C0F90BE06267AD2D2CA93934883E40B7F8633CA813E7D6CF9BF6BDBF4F76997D8EDBF85D7A25B71EE3ECBC07518F0921CE08EFE820966D4318AE17E3E1CD6B7859CD643251366C89F43219D9CF9EA5E6C242619E61E4761DF9D70284CD609AF05C9AC02CE925558286D7666BF6E345FE8EBB5F52603D441892134CDFEEEA797FFE3CAFDD1BF35EF8337BBD79C65AAF51301C2324B708515F9AE0421A9603D6FE4EB36827CC5B085E33A9AF56FF6F3E1926DAA4148A6EEC1BFFF63833E7EF60FE1AC9A503FB7B15D7291C4BA4E3E7C9C4CE139EDE6185E5B060CDDBFF9FAE1B14496CE68E3F339E627F45A7A347F55F1CD87FE90F3945A3D19DB55492FDA33861234288AFEFBCC9E800A1BB9BD0D24203F2DABCFCE3F1F88BE36775BA5B7E819A2F7C2AC08F79F2F14FC473C7FF9BF8734A59BF277F4F05399AAF52FF77370EECBFDCFF03251289DDEB993B1016EEE0FDFD9E2E72FF2CC9CB5BC0AD146A10FC779A02D39CC0DAA48D2639BBC0ECB051F09FEAF89A4CAD8DF97933424696B7E116797BEF905B79876CED37059F6C32FEF97ABF2CFE03C4FAC8FF]
Point(doBitmap)
link(onClick,13687199:doEvent1,[])
}
Add(DoData,11162176,252,49)
{
link(onEventData,10975728:onEvent5,[])
link(Data,3987778:Var1,[(258,37)(216,37)])
}
Add(GetDataEx,3987778,210,95)
{
Angle=3
link(Data,5188849:Var3,[])
}
Add(Edit,15953903,119,112)
{
Left=37
Top=5
Width=35
Ctl3D=1
Text="1"
DataType=1
ReadOnly=0
}
Add(Hub,13687199,203,49)
{
OutCount=4
link(onEvent1,11162176:doData,[])
link(onEvent2,9540186:doOperation,[(235,62)(235,125)])
link(onEvent3,15529878:doWork2,[(231,69)(231,314)])
}
Add(GetDataEx,5188849,196,95)
{
Angle=3
link(Data,5832627:Var3,[])
}
Add(HubEx,4990205,357,189)
{
link(onEvent,10975728:onEvent2,[(485,195)(485,34)])
}
Add(BitBtn,13099303,531,269)
{
Left=45
Top=207
Width=24
Height=24
Hint="Загрузить список шаблонов"
Frame=1
Caption=""
Data=Integer(0)
Bitmap=[ZIP3604000078DA8D922D0F833010866FC9C4E4247273DB1F2099452E9999C44E2227B14824B2969F80AC452227B195C8CAEE5A4AD3D0E3A3CD93CB71F7BEE59A26AFF80866C5C80D395B0E70190BB6EE2F657794B35D28624755BB9F9947C45A03530AB2DF3677C6E1F4AD037D2EA4F1C8C50ABD82A4E903FDB5EEE0C17F465F0C2BA047C287409F34C278D4A8AFE43A6F2E20E59DF3D07A3D978EA51C6758236DD107A3AF2FAC3EE33D28AC69A48D73F40C6AAEC7D99EAD7077B9075FCF70AE92803ADFE8BD37A07345CCE97A91A53579E8BBA7CEF1DF1900330AC367CCFDBAF6F0A1DEB9F320F4611F23BEDBDA86DEEFA5F225FFA5FFA0FAA7FC0FB613DD28]
Point(doBitmap)
link(onClick,5391772:doExecute,[])
}
Add(UpDown,1006406,121,249)
{
Left=8
Top=145
Width=24
Height=24
Hint="Выбор списка шаблонов"
Min=1
Point(doMax)
link(onPosition,4659468:doEvent1,[])
}
Add(Edit,9530658,189,283)
{
Left=37
Top=145
Width=35
Ctl3D=1
Text="1"
DataType=1
ReadOnly=0
}
Add(Hub,4659468,163,249)
{
OutCount=3
link(onEvent1,13705086:doEvent,[(284,255)(284,223)])
link(onEvent2,10975728:onEvent11,[(508,262)(508,97)])
link(onEvent3,9530658:doText,[(183,269)(183,289)])
}
Add(Hub,12485766,98,28)
{
OutCount=3
link(onEvent1,10975728:onEvent4,[(388,34)(388,48)])
link(onEvent2,13505184:doOperation,[(124,41)(124,79)(58,79)(58,118)])
link(onEvent3,1328052:doWork1,[(212,48)])
}
Add(Hub,10509481,350,287)
{
OutCount=5
link(onEvent1,143443:doWork3,[(378,293)])
link(onEvent2,9563513:doOperation,[])
link(onEvent3,10975728:onEvent7,[(608,307)(608,69)])
link(onEvent4,143443:doWork2,[(370,314)(370,258)])
link(onEvent5,11128559:doWork3,[(438,321)])
}
Add(Hub,16271466,476,294)
{
link(onEvent1,10232674:doWork3,[(502,300)(502,282)(109,282)])
link(onEvent2,14522349:doWork3,[(502,307)(502,283)(102,283)])
}
Add(HubEx,10232674,105,256)
{
link(onEvent,1006406:doMax,[])
}
Add(HubEx,14522349,98,249)
{
link(onEvent,1006406:doPosition,[])
}
Add(BitBtn,10261288,504,126)
{
Left=45
Top=175
Width=24
Height=24
Hint="Удалить список шаблонов по индексу"
Frame=1
Caption=""
Data=Integer(3)
Bitmap=[ZIP3604000078DA73F235636100033320D600620128666450804840E591C17F2AC1BCBC3C3026476F65FC2B064D86FB0CF61ACB18525353F1AA4D0AD8C4A0C77E03AB7E03AEDB0CC17E5938CD70D33C0C5617E5B60DA71B6C652E31C4C7C763C85B499C05DB8B4D2F0C5625BC069B116471982125258524BDE866049A1F66080E886330163ACEA0C3769D28BDE87E01E9D366BDC69095D443729CE873DC049BE1AE7D8464FDC8FE35E37FC010694BBC1B407AD1E3C859FE118397C65D8266588A9FC119BFF10ECF194CF9EEE334039F5E6433406AD0C51D651F80C541E98B9CF46F26F090C157E721D5F222291000B3EDC6C9]
Point(doBitmap)
link(onClick,683841:doEvent1,[])
}
Add(ODialog,5391772,588,269)
{
Filter="pat|*.pat|All|*.*"
link(onExecute,1825006:doWork2,[])
}
Add(SDialog,2428442,574,189)
{
Filter="pat|*.pat|All|*.*"
link(onExecute,10975728:onEvent13,[(722,195)(722,111)])
}
Add(Hub,13128007,252,154)
{
OutCount=4
link(onEvent1,10975728:onEvent3,[(552,160)(552,41)])
link(onEvent2,10975728:onEvent1,[(552,167)(552,27)])
link(onEvent3,14212705:doOperation,[])
link(onEvent4,15529878:doWork1,[(278,181)(278,263)(247,263)])
}
Add(HubEx,15529878,243,308)
{
Angle=1
link(onEvent,1328052:doWork3,[(247,326)])
}
Add(Memory,3903894,322,105)
{
}
Add(Hub,9533315,28,154)
{
link(onEvent1,185390:doMax,[(61,160)(61,100)(30,100)(30,41)])
link(onEvent2,3903894:doValue,[(182,167)(182,111)])
}
Add(DoData,7362588,644,315)
{
Data=Integer(1)
link(onEventData,14291369:doWork3,[(688,321)(688,289)(95,289)])
}
Add(Hub,7993035,637,269)
{
link(onEvent1,11175823:doWork1,[(663,275)(663,293)(632,293)])
link(onEvent2,10975728:onEvent10,[(745,282)(745,90)])
}
Add(HubEx,14291369,91,249)
{
link(onEvent,14522349:doWork2,[])
}
Add(Hub,683841,567,126)
{
link(onEvent1,10975728:onEvent12,[(710,132)(710,104)])
link(onEvent2,11175823:doWork2,[(605,139)(605,314)])
}
Add(HubEx,11175823,628,308)
{
Angle=1
link(onEvent,7362588:doData,[(632,321)])
}
Add(IndexToChanel,13705086,385,217)
{
Point(Index)
link(onEvent1,11128559:doWork2,[])
link(Index,16313875:State,[])
}
Add(Switch,16313875,385,168)
{
DataOn=Integer(1)
DataOff=Integer(0)
Point(State)
}
Add(HubEx,143443,374,252)
{
Angle=3
link(onEvent,16313875:doSwitch,[(378,174)])
}
Add(HubEx,11128559,434,217)
{
link(onEvent,10975728:onEvent8,[(628,223)(628,76)])
}
Add(Timer,6916405,175,350)
{
Enable=1
link(onTimer,10050912:doSwitch,[])
}
Add(Hub,15994505,224,329)
{
link(onEvent1,6916405:doStop,[(250,335)(250,349)(163,349)(163,363)])
link(onEvent2,10050912:doReset,[(301,342)(301,363)])
}
Add(HubEx,1328052,208,320)
{
Angle=1
link(onEvent,15994505:doEvent1,[(212,335)])
}
Add(Math,13505184,70,112)
{
Op2=1
link(onResult,15953903:doText,[])
}
Add(Math,9540186,252,119)
{
Op2=1
link(onResult,4990205:doWork1,[(361,125)])
link(Op1,5188849:Var2,[(258,111)(202,111)])
}
Add(Math,14212705,329,168)
{
Op2=1
link(onResult,12964808:doWork2,[(373,174)(373,146)(317,146)(317,89)])
link(Op1,3903894:Value,[(335,152)(328,152)])
}
Add(Math,9563513,427,294)
{
Op2=1
link(onResult,16271466:doEvent1,[])
link(Op1,6254129:Var3,[(433,282)(281,282)(281,299)])
}
Add(HubEx,12964808,294,83)
{
Angle=2
link(onEvent,12675393:doWork2,[(295,89)])
}
Add(DoData,5029603,273,231)
{
link(onEventData,6890595:doWork2,[(309,237)(309,209)])
link(Data,10975728:Data1,[(279,126)(20,126)])
}
Add(HubEx,6890595,313,203)
{
Angle=3
link(onEvent,12964808:doWork3,[(317,157)(298,157)])
}
Add(Switch,10050912,364,350)
{
DataOn=Integer(0)
DataOff=Integer(1)
Default=0
Point(onOn)
Point(onOff)
Point(DataOn)
Point(DataOff)
link(onOn,11484616:doData,[])
link(onOff,10258526:doData,[])
}
Add(DoData,10258526,476,364)
{
link(onEventData,11728919:doWork2,[(520,370)(520,342)])
link(Data,11902643:Bitmap,[])
}
Add(DoData,11484616,497,357)
{
link(onEventData,11728919:doWork3,[(534,363)])
link(Data,4677608:Bitmap,[])
}
Add(Bitmap,11902643,476,322)
{
Picture=[ZIP3604000078DAB592DB4B937118C70DFA03FA13BAEC0F1005BB0884A4C234D19CA805752162200ECD0D112FCAD185A660615776205337D4D40DB6D4656D739BBAE3EB649E52F07CD84669BA52B74F3F0FC48478EFFAC2C3C3F33ECF87DF7378D36FA75C4C3A518AB02BC22E9DD985A4CBA789B37CA29051F5D534B4191974363561EEEE66CCE1C0E1F3D15E50C09BE464DE6665C9E1ACD4A918C9CB63A0A5057351116B7373448F62E84B4BE9494BA357E4E434AB5662CABEC3A4C1C04071311DEDED2CEFEDA12F2BA32B35959E04FE796136AA1BD7787C2B9DF29BD7D1DCCFC3AB7C845351C0447939FE8A0AEC4A25F6CA4A2CF9F938140A7439397F794F5B2BF18D00878BE3C4169DACDBBAB13DBCC7F8D37A24930949F470DCC7A45E8F343C8CA7A4046DC2FC9ECE77C4164CE06A05772BDBC6062CC585489F06D9DAD9616A6686A0983F303D4D5CD47F56A9D06566FEE5178D5A8E42B3B0EC840D2F5BA35A2C450A7C037AF60E0E0887C344221142A1D0493C5255758EDFFADAC7D1CF35D8F68BC0C5A6B30F8B22175FBFFE64E791EF3FD88F46891E9B889D35350C25EC6F67C2486CD50D52270474EC3A3B30D4AAF19B0C485E073EAB9997CDCD68341A9E3536529F9B7BEE56BFFCC382F708BE0326B5C2BAC4018597DA60D5C2A1DB287BEB78D04C6C3F029B5362076382117B58B3096F15DF5CFC7698647916BE9CF2916F109E173B08C2BA5778D1D3E810E83EC8F34B56E24B76F0BD07BFA875BD16432DD3ACB84BAFFA01FD756A797EC5FECFF7871AABC5CFF18A8F9A5A799E80A80FB21FB4B32B59999FB0B1E11E65AC41CDE08B27FC2FFD013DA97813]
}
Add(Bitmap,4677608,497,315)
{
Picture=[ZIP3604000078DA73F235636100033320D600620128666450804840E591C1FFFFFF6986191C2078A0F4538AC503219812FDFCDEE4EB07E9558A244F6FF13484FB416C52F5FB5642F482C21FC426C77E58FC9163BF711A423F396180AC1FC426553FC84E987E72D20035DD4F6E1A04C51BA1B80300B055BB3C]
}
Add(HubEx,11728919,530,336)
{
Angle=3
link(onEvent,4429309:doBitmap,[(534,223)(142,223)(142,62)])
}
Add(BitBtn,12667681,457,189)
{
Left=8
Top=207
Width=24
Height=24
Hint="Создаёт новый файл для списков шаблонов"
Frame=1
Caption=""
Data=Integer(0)
Bitmap=[ZIP3604000078DA95912D6EC430104667A51EA04758D813EC010A2BF5240B03971A0606861A061A9A1A0E340C35749941813B4E1CCB7F59751D3D2972F4BE7C1E7F7EDFDE605B37E283788F5CE0BA7F88DFF3E5E323187B199F3D8ACFE0AD066714B85512029C5E080E1667624A383D3FF191DC98A145E6E7191D7FE1E41BF27B194B9571E2BBCCDFCEA1E239DA8CDA47B180F72EEBF0BC47ED6BF27F7EE9CDD9F21CA9874CF30C34BE14D17731633DC9D87B9CF96546679E611E44EDAF999F32C82F7AACB187EEF8AAF4EB8C1D0D867C25DBFEA6E3A77912A183E2746FD3086264FFF6B70CBA578308721CC00A827F8162F7C2B7284FFD80D1086A7A805703E03414EEF1FF34F70EE1FFC1C79935EEE15B2C097BC77EB85FC91E8DF707104D60E5]
Point(doBitmap)
link(onClick,2428442:doExecute,[])
}
Add(GetDataEx,6254129,121,294)
{
link(Data,1006406:Position,[])
}
Add(HubEx,1825006,623,269)
{
link(onEvent,7993035:doEvent1,[])
}
Add(GetDataEx,5832627,70,95)
{
Angle=3
link(Data,185390:Position,[(55,100)])
}
Add(HubEx,12675393,70,83)
{
Angle=2
link(onEvent,185390:doPosition,[(37,89)(37,34)])
}
END_SDK
Add(Hub,7682234,553,259)
{
link(onEvent1,1589728:doLoadFromStream,[(599,265)(599,237)])
link(onEvent2,15610504:doWork2,[])
}
Add(Hub,8829690,637,189)
{
OutCount=4
link(onEvent1,1589728:doDelete,[(707,195)(707,188)])
link(onEvent2,13777952:doWork1,[(663,202)(663,236)(641,236)])
link(onEvent3,5052428:doWork1,[(663,209)(663,253)(536,253)])
link(onEvent4,7696405:doWork1,[(690,216)])
}
Add(HubEx,13777952,637,266)
{
link(onEvent,7911370:doWork,[])
}
Add(Hub,16326480,574,175)
{
OutCount=4
link(onEvent1,1589728:doAdd,[(665,181)(665,174)])
link(onEvent2,15610504:doWork1,[(600,188)(600,228)(599,228)])
link(onEvent3,9836522:doWork1,[(599,195)])
link(onEvent4,4995826:doWork1,[(669,202)])
}
Add(HubEx,15610504,595,266)
{
link(onEvent,13777952:doWork2,[])
}
Add(DoData,13536464,567,336)
{
link(Data,230804:Var2,[(573,306)(510,306)])
}
Add(OperationsCombinedFiles,12977821,861,497)
{
Point(doDataReplace)
link(FileName,5924616:getVar,[])
link(Index,230804:Var1,[(881,369)(503,369)])
link(onData,10003676:doDeCompress,[])
}
Add(Hub,6448137,749,504)
{
OutCount=3
link(onEvent1,12977821:doDataRead,[])
link(onEvent2,230804:doWork3,[(775,517)(775,356)(485,356)(485,202)])
link(onEvent3,15000654:doData,[(812,524)(812,552)])
}
Add(ZLIB,10003676,924,490)
{
link(onStream,7682234:doEvent1,[(968,496)(968,380)(541,380)(541,265)])
}
Add(Hub,6025116,588,406)
{
OutCount=4
link(onEvent1,16634792:doWork3,[(669,412)])
link(onEvent2,653061:doWork2,[(669,419)(669,181)])
link(onEvent3,15263294:doReset,[(696,426)(696,482)])
link(onEvent4,4995826:doWork2,[(634,433)(634,237)])
}
Add(Hub,5412065,455,280)
{
OutCount=3
link(onEvent1,1589728:doInsert,[(549,286)(549,223)])
link(onEvent2,5052428:doWork2,[(501,293)(501,300)])
link(onEvent3,424294:doWork3,[(704,300)])
}
Add(ZLIB,14117105,819,175)
{
link(onStream,7453561:doEvent,[(863,181)(863,356)(779,356)(779,531)])
}
Add(IndexToChanel,7453561,791,525)
{
Point(Index)
link(onEvent1,12977821:doDataWrite,[(842,531)(842,503)])
link(onEvent2,12977821:doDataReplace,[(842,538)(842,524)])
link(Index,15263294:State,[])
}
Add(Switch,15263294,791,469)
{
DataOn=Integer(1)
DataOff=Integer(0)
Point(State)
Point(doOn)
}
Add(HubEx,5052428,532,294)
{
link(onEvent,9836522:doWork2,[])
}
Add(HubEx,7696405,686,231)
{
link(onEvent,424294:doWork2,[(696,237)(696,251)])
}
Add(HubEx,9836522,595,294)
{
link(onEvent,15263294:doOn,[(696,300)(696,489)])
}
Add(HubEx,4995826,665,231)
{
link(onEvent,7696405:doWork2,[])
}
Add(HubEx,16634792,665,91)
{
link(onEvent,13193676:doWork2,[])
}
Add(DoData,15000654,861,546)
{
link(onEventData,230804:doWork4,[(905,552)(905,380)(492,380)(492,209)])
link(Data,8177468:Var2,[])
}
Add(Memory,1574060,861,399)
{
}
Add(Hub,12193115,672,385)
{
OutCount=4
link(onEvent1,653061:doWork3,[(690,391)])
link(onEvent2,13193676:doWork3,[(698,398)(698,250)(683,250)])
link(onEvent3,6082104:doWork2,[])
link(onEvent4,11639333:doWork1,[(711,412)])
}
Add(Hub,5745799,630,441)
{
OutCount=5
link(onEvent1,6082104:doWork3,[(760,447)])
link(onEvent2,1572231:doWork3,[(690,454)])
link(onEvent3,8633682:doWork3,[(732,461)])
link(onEvent4,5074836:doData,[(656,468)(656,503)(576,503)(576,538)])
link(onEvent5,4540256:doWork3,[(711,475)])
}
Add(HubEx,424294,700,245)
{
link(onEvent,4540256:doWork2,[])
}
Add(DoData,5074836,588,532)
{
Data=Integer(1)
link(onEventData,12844069:doWork3,[(632,538)(632,366)(421,366)])
}
Add(LineBreakEx,5924616,861,462)
{
Caption="file"
Type=2
}
Add(LineBreakEx,13792065,861,441)
{
Caption="file"
Type=3
link(_Data,1574060:Value,[])
}
Add(InlineCode,7911370,770,266)
{
WorkPoints=#6:doWork|
EventPoints=#6:onTrue|0:|
DataPoints=#6:Param1|6:Param2|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|21:uses kol,Share,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|8: |10: public|21: Param1: THI_Event;|22: Param2: THI_Event; |19: onTrue: THI_Event;|3: |49: Procedure doWork(var _Data:TData; Index:Word); |0:|5: end;|0:|2: |15: implementation|0:|3: |29:Procedure THiAsmClass.doWork;|0:|5:begin|1: |50: _hi_OnEvent(onTrue,ToIntegerEvent(Param1)-1) ;|7: end;|0:|0:|4:end.|
link(onTrue,230804:doWork1,[(814,272)(814,230)(485,230)(485,188)])
link(Param1,9812186:Var2,[])
}
Add(HubEx,4540256,707,245)
{
link(onEvent,1589728:doSaveToStream,[(724,251)(724,230)])
}
Add(HubEx,6082104,756,399)
{
link(onEvent,1574060:doValue,[])
}
Add(HubEx,13193676,679,91)
{
link(onEvent,1572231:doWork2,[])
}
Add(HubEx,653061,686,175)
{
link(onEvent,8633682:doWork2,[])
}
Add(HubEx,11639333,707,504)
{
link(onEvent,6448137:doEvent1,[])
}
Add(HubEx,8633682,728,175)
{
link(onEvent,1589728:doClear,[])
}
Add(HubEx,1572231,686,91)
{
link(onEvent,5196945:doClear,[])
}
Add(HubEx,12844069,417,210)
{
Angle=3
link(onEvent,230804:doWork2,[(421,195)])
}
Add(If_else,9910668,259,231)
{
Type=3
link(onTrue,12844069:doWork2,[(355,237)(355,216)])
link(Op2,8177468:Var1,[(272,219)(575,219)(575,537)])
}
Add(GetDataEx,8177468,861,532)
{
link(Data,12977821:Count,[])
}
Add(If_else,14144534,259,294)
{
Type=3
link(onTrue,230804:doWork7,[(394,300)(394,230)])
link(Op2,9812186:Var1,[(272,250)])
}
Add(GetDataEx,9812186,770,245)
{
link(Data,1589728:Count,[])
}
В чём суть?
В hiStrListEx строки представлены не как в КОЛ, а как во всех нормальных языках - то есть строка - что заканчивается нулём.
По этому в этом компоненте можно содержать множество hiStrList - то есть список списков StrList.
hiOperationsCombinedFiles - это почти тоже самое, но только как оболочка если делать бесконечные текстовые "фракталы".
Для примера совсем в другом роде: https://disk.yandex.ru/d/kecLO9gtRijBtQ
"... Ну хотя бы пример загрузи и посмотри..."
Всё, я спёкся.