Часто бывает нужно, чтобы во время обработки данных пользователь не нажимал ничего на форме. Этот IC блокирует/разрешает сразу ВСЕ дочерние элементы для указанного PHandle. Блокировать можно как сразу на всей форме, так и в отдельных панелях, GroupBox'ах и т.д.
Код:
Add(MainForm,2953706,476,301) { Position=1 Point(PHandle) Point(onKeyDown) link(onKeyDown,14966911:doCase,[]) } Add(InlineCode,15732530,476,385) { @Hint=#26:Доступности всех контролов| WorkPoints=#5:doEnb|5:doDsb| DataPoints=#9:dtPHandle| Code=#15:unit HiAsmUnit;|0:|9:interface|0:|21:uses kol,Share,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|9: public|24: dtPHandle:THI_Event;|46: procedure doEnb(var dt:TData; index:word);|46: procedure doDsb(var dt:TData; index:word);|5: end;|0:|14:implementation|0:|0:|71://----------------------------Внешние точки----------------------------|28:procedure THiAsmClass.doEnb;|5:begin|53: ReadControl(dtPHandle,'').EnableChildren(true,true);|4:end;|0:|28:procedure THiAsmClass.doDsb;|5:begin|54: ReadControl(dtPHandle,'').EnableChildren(false,true);|4:end;|0:|4:end.| link(dtPHandle,2953706:PHandle,[]) } Add(Label,14905106,133,133) { Left=75 Top=35 } Add(Edit,2105225,238,112) { Left=185 Top=15 } Add(CheckBox,6957838,245,154) { Left=190 Top=55 } Add(ChildGroupBox,2578984,84,182) { } BEGIN_SDK Add(EditMulti,12973,21,21) { } Add(GroupBox,16477916,84,77) { Left=25 Top=85 Width=215 Height=140 } Add(Edit,10566298,28,28) { Left=25 Top=30 } Add(RadioButton,13882519,91,28) { Left=95 Top=25 } Add(ChildPanel,1252363,413,266) { } BEGIN_SDK Add(EditMulti,13106524,21,21) { VarCount=1 link(Var1,383835:PHandle,[(27,186)(104,186)]) } Add(Panel,383835,98,119) { Left=25 Top=55 Width=165 Height=55 Point(PHandle) } Add(Button,3261691,14,7) { Left=15 Top=10 } Add(ComboBox,9510208,84,14) { Left=85 Top=15 Height=21 } END_SDK Add(InlineCode,12081186,413,329) { @Hint=#26:Доступности всех контролов| WorkPoints=#5:doEnb|5:doDsb| DataPoints=#9:dtPHandle| Code=#15:unit HiAsmUnit;|0:|9:interface|0:|21:uses kol,Share,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|9: public|24: dtPHandle:THI_Event;|46: procedure doEnb(var dt:TData; index:word);|46: procedure doDsb(var dt:TData; index:word);|5: end;|0:|14:implementation|0:|0:|71://----------------------------Внешние точки----------------------------|28:procedure THiAsmClass.doEnb;|5:begin|53: ReadControl(dtPHandle,'').EnableChildren(true,true);|4:end;|0:|28:procedure THiAsmClass.doDsb;|5:begin|54: ReadControl(dtPHandle,'').EnableChildren(false,true);|4:end;|0:|4:end.| link(dtPHandle,1252363:Var1,[]) } Add(CheckBox,13736263,308,329) { Left=25 Top=110 Width=125 Font=[MS Sans Serif,8,1,0,1] Checked=0 Caption="Доступность" link(onCheck,16247284:doEvent,[]) } Add(IndexToChanel,16247284,357,329) { link(onEvent1,12081186:doDsb,[(401,335)(401,342)]) link(onEvent2,12081186:doEnb,[(401,342)(401,335)]) } END_SDK Add(Case,14966911,525,322) { Value=Integer(13) link(onTrue,14315788:doNext,[]) } Add(CounterEx,14315788,574,329) { Max=1 link(onNext,11919202:doEvent,[(618,335)(618,363)(408,363)(408,391)]) } Add(IndexToChanel,11919202,420,385) { link(onEvent1,15732530:doEnb,[]) link(onEvent2,15732530:doDsb,[]) }