Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Видимость компонент на форме [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


Наверх

Титульная страница Поиск, карта сайта Написать письмо