![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Видимость компонент на форме [D6, Win2k]
kerkonst © (2003-01-21 14:05:00)Здраствуйте !
И снова глупому мне требуется помощь...
Имеется формочка. На ней много PageContol-ов, некоторые из них
вложенные, куча закладок. На некоторых из закладок имеются
помимо прочего DBGrid-ы. Юзеру всегда одновременно виден только один DBGRid. Надо в любой момент времени знать, какой DBGrid видит юзер.
Пытался так. Вешал таймер и в нем:
for i:=0 to MainForm.ComponentCount-1 do
if MainForm.Components[i] is TDBGrid then
if (MainForm.Components[i] as TDBGrid).Visible then
begin
Ура ! Я нашел его !
...
Break;
end;
Но, у всех DBGid-ов visible=true.
Насколько я понял, visible работает "с точностью" до контейнера. Т.к. pagecontrol виден, то и все гриды типа видны.
Спрашивается, а как же всетки узнать, какой DBGrid видет юзер ?
kerkonst (2003-01-21 14:55:00) [1]OnEnter работает. Странно, что я сразу до него не допер, а возился с onchange.
Всем спасибо за участие...
kerkonst (2003-01-21 14:34:00) [2]сначала я примерно так и сделал.
Но, 1) некрасиво
2) при программном переключении pagecontrol.oncange не происходит.Если же каждый раз и здесь тоже сие делать, то это будет уже совсем некрасиво...
Хотя, счас с tabsheet.onenter попрубую...
MBo (2003-01-21 14:28:00) [3]может, проще будет по событию активации страниц проверять, есть ли на ней dbgrid и класть указатель на него в глоб. переменную?
kerkonst (2003-01-21 14:23:00) [4]Эээ.. Идея интересная, но мне немного неясно, как конкретно ее реализовывать. PageControl-ов несколько, причем некоторые из них вложены друг в дружку.
MBo (2003-01-21 14:08:00) [5]if DBGridX.Parent=PageControl1.ActivePage