Классный проект! Мона сделать его еще круче заменив стандартную таблицу строк(StringTable) на StringTableMT! Тоесть таблицу визуально можно сделать красивее и будет удобнее передвигаться по списку... Прикладываю схему, посмотрите и поймете о чем я) vyachko, давай прикрутим StringTableMT вместо стандартного StringTable, я уже начал, но у меня не до конца получается...
#sha Add(MainForm,5744389,49,98) { Left=20 Top=105 Width=668 Height=368 Caption="Пример создания дерева из листинга." Position=1 Point(Handle) link(onCreate,8940508:doPopup,[(92,139)(92,155)(37,155)(37,174)]) } Add(WinExec,16059018,203,224) { link(FileName,709053:Var1,[]) } Add(MultiElement,709053,203,161) { link(onEvent1,16125372:doAdd,[(249,167)(249,90)]) link(onEvent2,16125372:doClear,[(261,174)(261,97)]) link(onEvent3,16059018:doShellExec,[(247,181)(247,209)(191,209)(191,237)]) link(Data1,16125372:Select,[(209,142)(300,142)]) link(Data2,16125372:Index,[(216,150)(314,150)]) } BEGIN_SDK Add(EditMulti,7144467,21,21) { EventCount=3 WorkCount=6 DataCount=2 VarCount=1 Width=734 Height=767 link(doWork1,14763376:doEvent1,[(28,27)(28,69)]) link(doWork2,8784450:doEvent1,[(30,34)(30,328)]) link(doWork3,13497443:doEvent1,[(45,41)(45,615)]) link(doWork4,15068798:doSave,[(221,48)(221,167)]) link(doWork5,15068798:doLoad,[(221,55)(221,160)]) link(doWork6,1162612:doRead,[(70,62)(70,272)]) link(Var1,1162612:Item,[(27,543)(125,543)]) } Add(Position,10706324,119,609) { Target=";;;" ShortSearch=1 link(onSearch,6026447:doWork2,[]) link(Str,4590024:Var2,[]) } Add(InfoTip,10151055,-14,238) { Info=#14:Создаём дерево| Font=[MS Sans Serif,8,1,255,1] VAlign=2 Width=736 Height=529 } Add(Hub,13230700,259,126) { InCount=2 link(onEvent1,4807233:doData,[]) link(onEvent2,12185005:doWork1,[(303,139)(303,174)]) } Add(FileSearch,5917614,203,133) { Include=1 link(onSearch,13230700:doEvent2,[]) link(Dir,13017008:Var1,[(216,114)]) } Add(MultiElement,3553322,378,63) { } BEGIN_SDK Add(EditMulti,2075804,3,3) { WorkCount=1 VarCount=1 Width=307 Height=116 link(doWork1,4247391:doEvent2,[(19,9)(19,48)]) link(Var1,11620590:GetData,[(9,90)(258,90)]) } Add(StrPart,12098678,84,35) { Char="\" Point(onNotFound) link(onSplit,8740427:doEvent1,[]) link(onPart,9034012:doStrCat,[]) } Add(Hub,4247391,35,35) { InCount=2 OutCount=1 link(onEvent1,12098678:doSplit,[]) } Add(Hub,8740427,133,35) { link(onEvent1,4247391:doEvent1,[(182,41)(182,25)(25,25)(25,41)]) } Add(EventFromData,11620590,252,42) { } Add(StrCat,9034012,196,42) { Str2="\" link(onStrCat,11620590:doData,[]) } END_SDK Add(StrList,15068798,420,126) { FileName="fullpath.txt" } Add(Hub,14763376,147,63) { OutCount=3 link(onEvent1,316449:doStrCat,[]) link(onEvent2,13230700:doEvent1,[(245,76)(245,132)]) link(onEvent3,5917614:doSearch,[(191,83)(191,139)]) } Add(Memory,2034078,329,63) { link(onData,3553322:doWork1,[]) } Add(StrCat,316449,259,63) { Str2="\" link(onStrCat,2034078:doValue,[]) } Add(Replace,1084001,364,126) { link(onReplace,15068798:doAdd,[]) link(Sub_str,13017008:Var3,[(377,114)]) link(Dest,3553322:Var1,[]) } Add(GetDataEx,13017008,322,105) { link(Data,2034078:Value,[]) } Add(EventFromData,4807233,315,126) { } Add(MultiElement,12185005,315,168) { link(onEvent1,1084001:doReplace,[(355,174)(355,132)]) link(Data1,4807233:GetData,[]) } BEGIN_SDK Add(EditMulti,4335793,73,34) { EventCount=1 WorkCount=1 DataCount=1 Width=794 Height=323 link(doWork1,15055912:doEvent1,[(90,40)(90,216)]) } Add(Hub,5514879,245,210) { OutCount=3 link(onEvent1,14059179:doWork2,[]) link(onEvent2,9345982:doWork2,[]) link(onEvent3,15251305:doWork2,[(289,230)(289,307)]) } Add(MultiElement,9138266,490,224) { link(onEvent1,11763115:doStrCat,[]) } BEGIN_SDK Add(EditMulti,1136852,3,3) { EventCount=1 WorkCount=1 Width=342 Height=144 link(doWork1,9292942:doOperation,[(36,9)(36,34)]) } Add(StrCat,8925957,231,28) { Str1="," link(onStrCat,4795411:doStrCat,[(273,34)(273,72)(116,72)(116,90)]) } Add(StrCat,4795411,126,84) { link(onStrCat,1136852:onEvent1,[(309,90)(309,9)]) link(Str1,2836707:Left,[]) } Add(Math,9292942,70,28) { OpType=3 Op2=1024 link(onResult,2836707:doSplit,[]) } Add(StrPart,2836707,126,28) { Char="." Point(Left) link(onSplit,16345879:doCopy,[]) } Add(Copy,16345879,175,28) { Count=2 link(onCopy,8925957:doStrCat,[]) } END_SDK Add(FormatStr,6377040,686,301) { DataCount=6 Mask="%1;%6;%2;%3;%4;%5" link(onFString,4335793:onEvent1,[(844,307)(844,40)]) link(Str2,12864464:GetData,[]) link(Str4,6988166:DateCreate,[(713,279)(748,279)]) link(Str5,6988166:DateModify,[(720,285)(762,285)]) link(Str6,15251429:Item,[(727,293)(804,293)]) } Add(EventFromData,12864464,693,231) { } Add(FileSearch,7628891,189,210) { SubDir=1 link(onSearch,5514879:doEvent1,[]) link(Dir,14777863:Var2,[]) } Add(If_else,7591073,441,224) { Type=1 Op2=Integer(1024000) link(onTrue,9138266:doWork1,[]) link(onFalse,8090946:doWork1,[]) } Add(StrCat,11763115,637,224) { Str2=" Kb" link(onStrCat,16095484:doWork1,[(683,230)]) } Add(MultiElement,8090946,539,231) { link(onEvent1,11995170:doStrCat,[]) } BEGIN_SDK Add(EditMulti,1136852,3,3) { EventCount=1 WorkCount=1 Width=342 Height=144 link(doWork1,16414337:doOperation,[(12,9)(12,34)]) } Add(StrCat,8925957,231,28) { Str1="," link(onStrCat,4795411:doStrCat,[(273,34)(273,72)(116,72)(116,90)]) } Add(StrCat,4795411,126,84) { link(onStrCat,1136852:onEvent1,[(309,90)(309,9)]) link(Str1,2836707:Left,[]) } Add(Math,16414337,21,28) { OpType=3 Op2=1024 link(onResult,9292942:doOperation,[]) } Add(StrPart,2836707,126,28) { Char="." Point(Left) link(onSplit,16345879:doCopy,[]) } Add(Copy,16345879,175,28) { Count=2 link(onCopy,8925957:doStrCat,[]) } Add(Math,9292942,70,28) { OpType=3 Op2=1024 link(onResult,2836707:doSplit,[]) } END_SDK Add(ArrayRW,15251429,798,210) { link(Array,4426041:Array,[]) } Add(HubEx,16095484,679,224) { link(onEvent,12864464:doData,[]) } Add(StrCat,11995170,588,231) { Str2=" Mb" link(onStrCat,16095484:doWork3,[(683,237)]) } Add(FileAttributes,6988166,742,210) { Format="D-M-Y" Point(FileSize) link(onRead,15251429:doRead,[]) } Add(DoData,13906376,392,224) { link(onEventData,7591073:doCompare,[]) link(Data,5302991:Var,[]) } Add(StrList,4426041,784,147) { Strings=#6:NORMAL|7:ARCHIVE|8:READONLY|6:HIDDEN|6:SYSTEM|9:DIRECTORY|9:TEMPORARY|10:COMPRESSED|7:OFFLINE| } Add(StrPart,968394,217,119) { Char="\" link(onSplit,8966374:doEvent1,[]) link(Str,14777863:Var3,[(223,107)]) } Add(HubEx,14059179,371,203) { link(onEvent,6988166:doRead,[]) } Add(LineBreak,2613744,763,259) { Type=1 link(Data,6988166:FileSize,[]) Primary=[5302991,-371,-63] } Add(FileTools,14610279,119,112) { link(onEnd,2270577:doCase,[]) link(FileName,4458442:Var2,[]) } Add(GetDataEx,4458442,112,70) { Angle=3 link(Data,4335793:Data1,[(79,79)]) } Add(Case,2270577,161,112) { Value=Integer(1) link(onTrue,968394:doSplit,[]) } Add(Hub,15055912,119,210) { link(onEvent1,7628891:doSearch,[]) link(onEvent2,14610279:doFileExists,[(163,223)(163,181)(107,181)(107,139)]) } Add(DoData,7952108,329,119) { link(onEventData,14059179:doWork1,[(375,125)]) link(Data,3090351:Var3,[(335,86)]) } Add(GetDataEx,14777863,189,98) { link(Data,3090351:Var2,[]) } Add(GetDataEx,3090351,189,77) { link(Data,4458442:Var3,[(202,79)]) } Add(Hub,8966374,266,119) { OutCount=3 link(onEvent1,7952108:doData,[]) link(onEvent2,9345982:doWork1,[(319,132)]) link(onEvent3,15251305:doWork1,[(312,139)]) } Add(HubEx,9345982,315,210) { link(onEvent,13906376:doData,[(365,223)(365,230)]) } Add(HubEx,15251305,308,294) { link(onEvent,6377040:doString,[]) } END_SDK Add(GetDataEx,15383776,322,518) { link(Data,1500580:Var,[]) } Add(HubEx,6026447,161,602) { link(onEvent,14772012:doCompare,[]) } Add(InfoTip,16235605,133,49) { Info=#17:Формируем листинг| Font=[MS Sans Serif,8,1,255,1] VAlign=2 Width=386 Height=179 } Add(DoData,10627694,329,539) { link(onEventData,178895:doSplit,[]) link(Data,15383776:Var2,[]) } Add(MultiElement,12603487,133,441) { link(onEvent1,2932093:doValue,[(220,447)(220,377)]) link(onEvent2,3945472:doEvent1,[]) } BEGIN_SDK Add(EditMulti,8029345,21,21) { EventCount=2 WorkCount=2 Width=328 Height=186 link(doWork1,13386742:doWork1,[(231,27)(231,76)]) link(doWork2,11903736:doSplit,[(35,34)(35,104)]) } Add(StrPart,11903736,49,98) { Char="\" Point(onNotFound) link(onPart,14479589:doEvent1,[]) link(onNotFound,15018106:doEvent1,[(93,118)(93,146)]) } Add(Hub,14479589,105,105) { link(onEvent1,4193695:doWork2,[(166,111)(166,83)]) link(onEvent2,9518813:doWork1,[(214,118)]) } Add(Hub,15018106,105,140) { OutCount=3 link(onEvent1,13386742:doWork3,[(184,146)(184,90)]) link(onEvent2,780:doSplit,[]) link(onEvent3,9518813:doWork2,[]) } Add(ChanelToIndex,13386742,245,70) { Count=3 link(onIndex,8029345:onEvent1,[(290,76)(290,27)]) } Add(StrPart,780,154,147) { Char=";" Point(onNotFound) link(onNotFound,4193695:doWork3,[(200,167)]) } Add(HubEx,9518813,210,147) { link(onEvent,8129820:doData,[(229,160)(229,118)]) } Add(HubEx,4193695,196,70) { link(onEvent,13386742:doWork2,[]) } Add(ChangeMon,8129820,245,112) { link(onData,8029345:onEvent2,[(307,118)(307,34)]) } Add(InfoTip,4410201,42,29) { Info=#13:Верхняя точка|18:папки нижняя файлы| Font=[MS Sans Serif,8,1,255,1] Width=57 Height=116 } END_SDK Add(ArrayEnum,133332,329,329) { Type=1 link(onItem,12102525:doEvent2,[(379,335)(379,407)(52,407)(52,461)]) link(Array,14319154:Var2,[]) } Add(DoData,15279678,406,392) { link(onEventData,15989513:doReplace,[(521,398)(521,335)]) link(Data,9835782:Item,[]) } Add(Hub,3945472,259,448) { InCount=2 OutCount=1 link(onEvent1,1891411:doString,[]) } Add(Replace,15989513,532,329) { link(onReplace,12102525:doEvent1,[(579,335)(579,418)(60,418)(60,454)]) link(Sub_str,12746560:Var3,[(545,317)]) } Add(Position,14460703,462,329) { ShortSearch=1 link(onSearch,15279678:doData,[(503,335)(503,375)(396,375)(396,398)]) link(Target,12746560:Var1,[(475,317)]) } Add(GlobalVar,5954513,567,546) { Name="Dir_selest" Data=String() } Add(GlobalVar,3353757,476,287) { Name="Dir_selest" Data=String() } Add(GetDataEx,12746560,469,308) { link(Data,3353757:Var,[]) } Add(Hub,205708,399,455) { OutCount=4 link(onEvent1,3952969:doEvent1,[(441,461)(441,446)(251,446)(251,489)]) link(onEvent2,12603487:doWork1,[(441,468)(441,515)(118,515)(118,447)]) link(onEvent3,15148261:doData,[]) link(onEvent4,9835782:doEnum,[(458,482)(458,407)(388,407)(388,335)]) } Add(GetDataEx,14319154,322,301) { link(Data,10777220:Data1,[(335,267)(440,267)]) } Add(ArrayEnum,9835782,406,329) { Type=1 link(onItem,14460703:doSearch,[]) link(Array,14319154:Var3,[(412,310)]) } Add(Hub,12102525,70,448) { InCount=2 OutCount=1 link(onEvent1,12603487:doWork2,[]) } Add(StrPart,178895,385,539) { Char=";" link(onPart,10840143:doStrCat,[]) } Add(StrCat,10840143,441,546) { Str2="\" link(onStrCat,4543822:doStrCat,[]) } Add(If_else,15958461,350,616) { Op2=String(:) link(onTrue,2968889:doEvent1,[]) link(onFalse,2420500:doEvent1,[(398,629)(398,671)]) link(Op1,4836770:Var,[]) } Add(StrCat,4543822,497,546) { link(onStrCat,5031418:doWork2,[]) link(Str1,2572679:Var1,[(503,534)(554,534)(554,576)]) } Add(Hub,2420500,413,665) { InCount=2 OutCount=3 link(onEvent1,3729537:doPush,[(471,671)(471,615)]) link(onEvent2,10627694:doData,[(457,678)(457,581)(315,581)(315,545)]) link(onEvent3,2975672:doNext,[]) } Add(Stack,3729537,497,609) { Default=String() Point(onEmpty) link(onPop,5031418:doWork3,[(543,622)]) link(Data,2572679:Var2,[(503,601)(573,601)]) } Add(HubEx,5031418,539,539) { link(onEvent,5954513:doValue,[]) } Add(DoData,15148261,476,469) { Data=String(..) link(onEventData,3945472:doEvent2,[(516,475)(516,435)(242,435)(242,461)]) } Add(GetDataEx,2572679,560,567) { link(Data,5954513:Var,[]) } Add(Hub,8784450,224,322) { InCount=2 link(onEvent1,8239381:In,[]) link(onEvent2,133332:doEnum,[]) } Add(LineBreak,5462371,196,490) { link(Out,3952969:doEvent2,[]) Primary=[8239381,84,-168] } Add(Hub,3952969,259,483) { InCount=2 OutCount=1 link(onEvent1,7144467:onEvent2,[(598,489)(598,34)]) } Add(If_else,6338138,567,679) { Op2=Integer(0) link(onTrue,8784450:doEvent2,[(629,685)(629,738)(187,738)(187,335)]) link(onFalse,205708:doEvent1,[(609,692)(609,521)(389,521)(389,461)]) } Add(Hub,2968889,413,616) { link(onEvent1,3729537:doPop,[]) link(onEvent2,2975672:doPrev,[(483,629)(483,692)]) } Add(If_else,14772012,210,609) { Op2=Integer(0) link(onTrue,2420500:doEvent2,[(329,615)(329,678)]) link(onFalse,15958461:doCompare,[]) link(Op1,2975672:Count,[(216,597)(264,597)(264,724)(503,724)]) } Add(Counter,2975672,497,679) { link(onNext,6338138:doCompare,[]) } Add(Position,14317154,105,616) { Target=":" ShortSearch=1 link(onSearch,6026447:doWork3,[(165,622)]) link(Str,4590024:Var1,[(111,590)]) } Add(Hub,13497443,56,609) { link(onEvent1,10706324:doSearch,[]) link(onEvent2,14317154:doSearch,[]) } Add(Memory,2932093,315,371) { Default=Integer(1) } Add(FormatStr,1891411,315,448) { Mask="%1 ;;%2;" link(onFString,7144467:onEvent1,[(551,454)(551,27)]) link(Str1,2932093:Value,[]) } Add(LineBreak,8721163,49,35) { Type=1 link(Data,7144467:Data1,[(55,28)(27,28)]) Primary=[1500580,280,462] } Add(LineBreak,6655050,98,105) { Type=1 link(Data,4456775:Data1,[]) Primary=[4836770,252,483] } Add(GetDataEx,4590024,112,581) { link(Data,15383776:Var1,[(125,527)]) } Add(ArrayRW,1162612,119,266) { link(onRead,7144467:onEvent3,[(453,272)(453,41)]) link(Array,10777220:Data2,[(125,247)(447,247)]) link(Index,4456775:Data2,[(132,170)(111,170)]) } Add(GetData,10777220,434,196) { link(Data,15068798:Array,[]) } Add(GetData,4456775,98,42) { link(Data,7144467:Data2,[(104,32)(34,32)]) } END_SDK Add(DropFile,3854546,140,161) { link(onDropFile,709053:doWork1,[]) link(onEndDrop,709053:doWork2,[]) } Add(WinTools,8940508,49,161) { link(Handle,5744389:Handle,[]) } Add(StringTableMT,16125372,287,84) { Top=45 Width=652 Height=287 Align=5 Font=[Courier New,10,0,0,204] Columns=#7:Имя=350|7:Тип=100|10:Размер=100|8:Сжат=100|10:Создан=100|11:Изменён=100| ColorItems=0 IconToBmp=0 AssignedIList=0 IconsCheck=[] MiscIcons=[] Icons=['Icon'=[ZIP7E04000078DACD935D48936114C77F52D0A5A6385686DA521107F601B11263652E2C95FCA08BA0ABBAA9DB2864E13E641A2945DA42A20B1924C944735DC4E82E2F22A441178210CAD46D2F6BB3D8C7BBB75E9BEEED6D8320926641D079F81F1ECEE17F9EF31CFE070AD45354846A955CDD091AF556ABA2281B41CD7EF76473FFBB49EB12857D2568EEEB28E9DF47B1752F1A5B3925B74A09C54379F9A9F514D5EE46AE49633487AC98041BA6551BDA07871012C2B6F8BA09033DB1714E2EDDE4D4E20D9A16CD68EFE9098BE1BCFCA49CA47AAA018BE8A669B987D3FE1E4CFE5EB4C37A8464FEF71372829A9946063E3FA33960E6CC8A9996552B650FEB09C6835B72324A06E9AB94453819A6D6D3C05DF9052D422F678316CE05FAD8E3D4B31059C8F627CA229B99CD1FFCF4469AD699564A270E50E6A9E7E8DC05AE88A374441DB487EDB4066C543D3E41B1733FBB1F9563741991D3F2CF734BA738FEBC9131E50D16659AEEC4205D6B0374441CB40976DA0507E73F0E71F8A981981CDBF21F51394ACDB41E97F29ACB5F46E98EDDA173AD5FEDE3369D9F86A87A52473015FCEDFC96C425749E3AC695392E89C36A8D412E4A4E2AA6EA988FCD6F4B83BE988F9A9747D41A3EAE67DC547A0F321B99FD231D7B3F7831BC6DE3D8BB2E2603937FB50B2EBF8B91F723FF74DF14258778E1AFB017E4F06A07ACECCAC5E40AD830AA9AB3E578DF008450DC13],'Icon'=[ZIP7E04000078DAB5934B4854511C873F2B1721D2AC8616411114821B4D225A444254E4AE4D2DC216D142888AAC14C54793369515A148506EB4942673189D2CB569640C5F3D460DD1C91EBECD775AE34C8E337AFACFB8880B4618752EDFBD877BCEF7BBE7DEF3BF1026874E87B42D24AD03BDF4A2045DE80E321A3C131AFB9FADF86D3FBA9432B61AADE4DA3A57E5DE79D50B9995906E26B2DDCF9AC226C2B3ADECCCAFC7607FFFE7804B4FD854D412CA88195144F529B6F52B367F5444985CACCD79C6860C3349E6B6D074BF7F51EB5F7E4AB4A50BE499872715FB0614BBBB7F10D7E966D7A062C7F0321B4DDD44186BD06755687DC93FD8D00F866A92E714C7A714C7C61547C614075C6EF674CC12F37284F8013FD1D52E385DACF5AFD492D83A0CB935142C2AD23D8A54B7E2DC37C5A919C5C96945E28422B6EE03091D5370F6BED6BFFA9CE4375FC058479552144A46BE70D3AF30FA14D9929722EB8AB77FE2E2F725482ED3FAD75F90D93509D76CB4886F124A97142572BD1B50142C4896E41C6D1B226F5EC185875AFF463DE7DB4721CFCE67716C42AD60151E4B4EA9ACA348FC33AE09EE4916A9E51ADDD0DC17CAE0968361711A3DF3347B7C347916307BFD98BC0B3C122FAD678272590F69152B96C1F607EF882D739250D9498E73908E192FA38100A3BE00AF673D14F57EA551FA645856F4E782D9D21AC7BD185A873864E926AEC4893EDFC198DBF76B6256D5AAEA7BFD6D07D3F20E7FEBEFB7F484F636581FC15A3D616AFD27FFAC7C6AA4D471EC15C285B0DF332BCC458AE3141A96DD9FA1232ED9],'Icon'=[ZIP7E04000078DAB591CB4B025114874FD43E57AD5BF6979598923BD3C607B5D03616B450D3086A1151604250CB76AD82A0551135489859BEC7C7CC3863E79E3B93E64D5B4467F8E65EE6F2FD38F70CC0143E0E0760CD837306600E770B8883BE009EB237D0D97F555A5A86BD900732C304196E3A63EC4A2E48AD39692FF8BE455A35E56D40B388BC82D62880567F01B52A43B7FC0009FF92E01F845768EDB5CB84CE687D20EFA02B25D05916E5E421E9770AFE61C4CBFD6E9DD3A92155CCAA60969DC37A2A402AE012FCE3E82AAD86AA103DB589390D2BAB6AF5C3328A3803F1FE279B01EEEB1D8ED6465A98A3F09CAF8C12CE51F4B3F130AD664F473430187A97E75086D507CEE4A7F967B722DC374D8E6150969D41F76133C11ED2927BAC6FD72043E3F7B17BC07966248FE0E7B623C2379EC17B607350950AD48A32EC5BFF6AB82E12D109BE0A47EBDE6F8CD6653226BAA6DD3FF75BF97BC8C54320DFDDFCEA8F16F3C7B9B6CF38DFD920CEE241E234E623983FCEFD4BF5FB0057D300B71378449E2CD8FEF91A9D59EE7E0288625D65]] FileName="listik.txt" SaveColProp=0 SaveWidth=0 SaveImgIndex=0 StaticColumn=0 Point(Index) Point(onDblClick) Point(doTextColor) Point(onGetIcon) link(onDblClick,5281338:doEvent1,[]) } Add(Hub,5281338,343,91) { link(onEvent1,709053:doWork3,[(387,97)(387,139)(191,139)(191,181)]) link(onEvent2,709053:doWork6,[(387,104)(387,153)(191,153)(191,202)]) }
|