Add(Button,2052408,231,140) { Left=20 Top=25 Caption="Open" link(onClick,14935613:doExecute,[]) } Add(InlineCode,16012341,329,140) { WorkPoints=#50:doOpenFile=Открыть файл (Путь передаётся в потоке)|20:doClose=Закрыть файл| EventPoints=#63:onRes=Событие выдаёт в поток строку "Частота(Гц);Амплитуда(дб)"|73:onEnd=Событие выдаёт в поток процент выполнения, 100 - окончание расчётов|27:onError=Сообщение об ошибке| Code=#15:unit HiAsmUnit;|0:|9:interface|0:|29:uses kol,Share,windows,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|14: //Fs:file;|15: Fs:PStream;|4: |9: public|25: _data_Data:THI_Event;|31: onRes:THI_Event; |30: onEnd:THI_Event; |30: onError:THI_Event; |0:|52: procedure doOpen(var _Data:TData; Index:word); |54: procedure doClose(var _Data:TData; Index:word); |5: end;|0:|14:implementation|0:|30:{procedure THiAsmClass.doOpen;|14:var fn:string;|14: i:integer;|5:begin|24: fn := ToString(_Data);|16: assign(Fs,fn);|14: reset(Fs,1);|34: blockread(Fs,i,sizeof(integer));|23: _hi_OnEvent(onRes,i);|12: close(Fs);|5:end;}|0:|29:procedure THiAsmClass.doOpen;|14:var fn:string;|5:begin|19: Free_And_Nil(Fs);|24: Fn := ToString(_Data);|30: Fs := NewReadFileStream(Fn);|4:end;|0:|30:procedure THiAsmClass.doClose;|5:begin|14: //close(Fs);|19: Free_And_Nil(Fs);|4:end;|0:|4:end.| Name="Nois" link(onRes,11130894:doWork1,[(368,146)]) link(onEnd,11130894:doWork2,[]) link(onError,11130894:doWork3,[(368,160)]) } Add(ODialog,14935613,280,140) { link(onExecute,16012341:doOpenFile,[]) } Add(Button,5894561,231,182) { Left=20 Top=60 Caption="Close" link(onClick,16012341:doClose,[(263,188)(321,188)(321,153)]) } Add(ListBox,6601860,385,147) { Left=95 Top=10 Width=215 } Add(HubEx,11130894,364,147) { link(onEvent,6601860:doAdd,[]) }