Часто бывает нужно, чтобы во время обработки данных пользователь не нажимал ничего на форме. Этот 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,[])
}