Вверх ↑
Ответов: 1925
Рейтинг: 172
#1: 2020-01-05 19:47:04 ЛС | профиль | цитата
GIF

Есть, конечно, метод doBringToFront, но у него два недостатка:
1. GroupBox друг под другом: клик достаёт до элементов нижележащего бокса;
2. Если панели разного размера - большие снизу будут выглядывать из-под маленьких сверху.

Решение - doVisible, но оно неудобно тем, что при каждом переключении приходится тянуть связи ко всем панелям для Visible:=0. Немного подумав, составил простую схему:
Add(Button,5384408,224,259)
{
@Color=255
Left=5
Top=5
Width=165
Height=45
Caption="1"
link(onClick,12794927:doWork1,[])
AddHint(-109,7,21,13,Caption)
}
Add(Button,9501709,224,329)
{
@Color=255
Left=5
Top=60
Width=165
Height=45
Caption="2"
link(onClick,12794927:doWork2,[(272,335)(272,272)])
AddHint(-101,4,21,13,Caption)
}
Add(Button,345068,224,434)
{
@Color=255
Left=5
Top=160
Width=165
Height=45
Caption="4"
link(onClick,12794927:doWork4,[(272,440)(272,286)])
AddHint(-106,4,21,13,Caption)
}
Add(Button,9880169,224,483)
{
@Color=255
Left=5
Top=210
Width=165
Height=45
Caption="5"
link(onClick,12794927:doWork5,[(272,489)(272,293)])
AddHint(-97,5,21,13,Caption)
}
Add(Button,16334480,224,378)
{
@Color=255
Left=5
Top=110
Width=165
Height=45
Caption="3"
link(onClick,12794927:doWork3,[(272,384)(272,279)])
AddHint(-131,9,21,13,Caption)
}
Add(ChanelToIndex,12794927,287,259)
{
Count=5
link(onIndex,8039270:doSet,[])
}
Add(MultiSetParam,8039270,336,259)
{
Parameters=#9:1;0;0;0;0|9:0;1;0;0;0|9:0;0;1;0;0|9:0;0;0;1;0|9:0;0;0;0;1|
Count=5
link(onSet1,15687527:doWork1,[])
link(onSet2,6552823:In,[])
link(onSet3,4126784:In,[])
link(onSet4,14423957:In,[])
link(onSet5,2898079:In,[])
}
Add(LineBreak,10131051,441,329)
{
Caption="vis"
link(Out,1246265:doWork1,[])
Primary=[6552823,-63,-63]
}
Add(LineBreak,14154319,441,378)
{
Caption="vis"
link(Out,16595292:doWork1,[])
Primary=[4126784,-63,-105]
}
Add(LineBreak,5373718,441,434)
{
Caption="vis"
link(Out,9904003:doWork1,[])
Primary=[14423957,-63,-154]
}
Add(LineBreak,10927514,441,483)
{
Caption="vis"
link(Out,16488555:doWork1,[])
Primary=[2898079,-63,-196]
}
Add(ChildPanel,1246265,490,329)
{
}
BEGIN_SDK
Add(EditMulti,1407037,21,21)
{
WorkCount=1
link(doWork1,5337714:doVisible,[(59,27)(59,69)])
}
Add(Panel,5337714,98,56)
{
Left=195
Top=30
Width=170
Height=215
Visible=1
Point(doVisible)
}
Add(Label,3330816,168,98)
{
Left=60
Top=90
Width=22
Height=17
Caption="222"
}
END_SDK
Add(ChildPanel,16595292,490,378)
{
}
BEGIN_SDK
Add(EditMulti,15996227,21,21)
{
WorkCount=1
link(doWork1,14650263:doVisible,[(59,27)(59,69)])
}
Add(Panel,14650263,98,56)
{
Left=195
Top=30
Width=170
Height=215
Visible=1
Point(doVisible)
}
Add(Label,6723808,168,98)
{
Left=60
Top=90
Width=22
Height=17
Caption="333"
}
END_SDK
Add(ChildPanel,9904003,490,434)
{
}
BEGIN_SDK
Add(EditMulti,267168,21,21)
{
WorkCount=1
link(doWork1,14054324:doVisible,[(59,27)(59,69)])
}
Add(Panel,14054324,98,56)
{
Left=195
Top=30
Width=223
Height=171
Visible=1
Point(doVisible)
}
Add(Label,10547930,168,98)
{
Left=60
Top=90
Width=22
Height=17
Caption="444"
}
END_SDK
Add(ChildPanel,16488555,490,483)
{
}
BEGIN_SDK
Add(EditMulti,11663719,21,21)
{
WorkCount=1
link(doWork1,16337692:doVisible,[(59,27)(59,69)])
}
Add(Panel,16337692,98,56)
{
Left=195
Top=30
Width=185
Height=230
Visible=1
Point(doVisible)
}
Add(Label,15731849,168,98)
{
Left=60
Top=90
Width=22
Height=17
Caption="555"
}
END_SDK
Add(ChildPanel,15687527,490,259)
{
}
BEGIN_SDK
Add(EditMulti,1591142,21,21)
{
WorkCount=1
link(doWork1,12574307:doVisible,[(59,27)(59,69)])
}
Add(Panel,12574307,98,56)
{
Left=195
Top=30
Width=135
Height=185
Point(doVisible)
}
Add(Label,5176033,168,98)
{
Left=60
Top=90
Width=22
Height=17
Caption="111"
}
END_SDK
Если кто проще покажет - с удовольствием погляжу.
карма: 9
0
файлы: 1viss.gif [13.6KB] [1437]
Редактировалось 1 раз(а), последний 2020-01-05 19:48:43