Со счётчиком не очень хорошо получается: Add(MainForm,2953706,21,105) { Width=443 Height=148 } Add(ProgressBarRush,3433553,588,315) { Left=95 Top=15 Width=325 } Add(InlineCode,9268460,469,315) { WorkPoints=#6:doWork| EventPoints=#10:onProgress|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; |23: onProgress: THI_Event;|3: |49: Procedure doWork(var _Data:TData; Index:Word); |0:|5: end;|0:|2: |15: implementation|0:|3: |30:Procedure THiAsmClass.doWork; |5: var |19:Count,LEn: Integer;|0:|5:begin|33:Count:= ToIntegerEvent ( Param1);|31:LEn:= ToIntegerEvent ( Param2);|55: _hi_OnEvent(onProgress,Round((LEn / Count) * 100)); |7: end;|0:|0:|4:end.| link(Param1,11957403:Var3,[(475,271)]) link(Param2,4980327:Count,[(482,303)(422,303)(422,331)(363,331)]) link(onProgress,7197754:doWork2,[]) } Add(Button,2012217,98,161) { Left=20 Top=15 link(onClick,11843189:doEvent1,[]) } Add(Browse,2142675,210,189) { DefaultFolder="c:\Книги2\" link(onBrowse,1589198:doSearch,[]) } Add(Label,16577957,672,301) { Left=20 Top=50 Width=65 Height=25 } Add(FileSearch,1589198,266,189) { link(onSearch,2690431:doAdd,[]) link(onEndSearch,5651775:doData,[(310,202)(310,276)(240,276)(240,349)]) } Add(Hub,11843189,175,161) { OutCount=4 link(onEvent1,16260069:doData,[(259,167)(259,111)]) link(onEvent2,2690431:doClear,[(325,174)(325,202)]) link(onEvent3,6338084:doSwitch,[(201,181)(201,213)(177,213)(177,244)]) link(onEvent4,2142675:doBrowse,[(199,188)(199,195)]) } Add(DoData,16260069,287,105) { Data=Integer(0) link(onEventData,7197754:doWork1,[(543,111)]) } Add(StrList,2690431,462,189) { Point(doGetString) Point(onGetString) link(onGetString,15118663:doEvent1,[]) } Add(Hub,2178543,427,217) { OutCount=4 link(onEvent1,2690431:doGetString,[]) link(onEvent2,9268460:doWork,[(455,230)(455,321)]) link(onEvent3,5723051:doCompare,[(462,237)(462,265)]) link(onEvent4,14236080:doEvent,[(453,244)(453,268)(177,268)(177,293)]) } Add(SearchInFile,11367457,595,196) { Text="qwerty" } Add(Hub,15118663,511,196) { link(onEvent1,11367457:doSearch,[]) link(onEvent2,10603494:doData,[(549,209)(549,251)]) } Add(DoData,5651775,252,343) { link(onEventData,3575035:doEvent1,[]) link(Data,11957403:Var2,[]) } Add(Hub,3575035,301,343) { OutCount=3 link(onEvent1,4980327:doMax,[(332,349)(332,300)]) link(onEvent2,16577957:doText,[(493,356)(493,307)]) link(onEvent3,16260470:doStart,[(327,363)(327,370)(107,370)(107,377)]) } Add(Thread,16260470,119,371) { Delay=0 FastStop=0 link(onExec,7824120:doWork2,[(223,377)(223,293)]) } Add(GetDataEx,11957403,252,266) { link(Data,4023199:Var2,[(258,246)(475,246)]) } Add(DoData,10603494,574,245) { } Add(HubEx,7824120,294,287) { link(onEvent,4980327:doNext,[]) } Add(HubEx,7197754,539,315) { link(onEvent,3433553:doPosition,[]) } Add(CounterEx,4980327,357,287) { Min=-1 Point(doMax) Point(onThroughMax) Point(doReset) link(onNext,2178543:doEvent1,[(408,293)(408,223)]) } Add(IndexToChanel,14236080,189,287) { Point(Index) link(onEvent1,7824120:doWork1,[(259,293)(259,284)(298,284)]) link(Index,6338084:State,[]) } Add(Switch,6338084,189,238) { DataOn=Integer(0) Point(State) } Add(If_else,5723051,483,259) { link(onTrue,6338084:doReset,[(527,265)(527,258)(177,258)(177,251)]) link(Op2,4023199:Var3,[(496,236)]) } Add(GetDataEx,4023199,469,231) { link(Data,2690431:Count,[]) }
Вот так может быть немного лучше: Add(MainForm,2953706,21,105) { Width=443 Height=148 } Add(ProgressBarRush,3433553,588,315) { Left=95 Top=15 Width=325 } Add(InlineCode,9268460,469,315) { WorkPoints=#6:doWork| EventPoints=#10:onProgress|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; |23: onProgress: THI_Event;|3: |49: Procedure doWork(var _Data:TData; Index:Word); |0:|5: end;|0:|2: |15: implementation|0:|3: |30:Procedure THiAsmClass.doWork; |5: var |19:Count,LEn: Integer;|0:|5:begin|33:Count:= ToIntegerEvent ( Param1);|31:LEn:= ToIntegerEvent ( Param2);|55: _hi_OnEvent(onProgress,Round((LEn / Count) * 100)); |7: end;|0:|0:|4:end.| link(Param1,12932162:Var1,[(475,289)(466,289)(466,264)]) link(Param2,16561148:Var1,[(482,303)(377,303)]) link(onProgress,7197754:doWork2,[]) } Add(Button,2012217,98,161) { Left=20 Top=15 link(onClick,11843189:doEvent1,[]) } Add(Browse,2142675,210,189) { DefaultFolder="c:\Книги2\" link(onBrowse,1589198:doSearch,[]) } Add(FileSearch,1589198,266,189) { link(onSearch,2690431:doAdd,[]) link(onEndSearch,16260470:doStart,[(310,202)(310,296)(191,296)(191,391)]) } Add(Hub,11843189,175,161) { OutCount=4 link(onEvent1,16260069:doData,[(259,167)(259,111)]) link(onEvent2,2690431:doClear,[(325,174)(325,202)]) link(onEvent4,2142675:doBrowse,[(199,188)(199,195)]) } Add(DoData,16260069,287,105) { Data=Integer(0) link(onEventData,7197754:doWork1,[(543,111)]) } Add(StrList,2690431,462,189) { Point(doGetString) Point(onGetString) link(onGetString,15118663:doEvent1,[]) } Add(Hub,2178543,427,217) { OutCount=4 link(onEvent1,2690431:doGetString,[]) link(onEvent2,9268460:doWork,[(455,230)(455,321)]) } Add(SearchInFile,11367457,595,196) { Text="qwerty" } Add(Hub,15118663,511,196) { link(onEvent1,11367457:doSearch,[]) link(onEvent2,10603494:doData,[(549,209)(549,251)]) } Add(Thread,16260470,203,385) { Delay=0 FastStop=0 link(onExec,8307103:doFor,[]) } Add(DoData,10603494,574,245) { } Add(HubEx,7197754,539,315) { link(onEvent,3433553:doPosition,[]) } Add(For,8307103,329,385) { link(onEvent,3701077:doData,[]) link(End,12932162:Var2,[(342,306)(475,306)]) } Add(DoData,3701077,385,385) { link(onEventData,2178543:doEvent1,[(426,391)(426,223)]) link(Data,16561148:Var3,[(391,373)]) } Add(GetDataEx,16561148,371,368) { Angle=3 link(Data,8307103:Position,[(366,373)(366,429)(335,429)]) } Add(GetDataEx,12932162,469,259) { link(Data,2690431:Count,[]) }
|