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

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

Кто хранит TTabSheet


Ega23 ©   (2005-03-17 13:41:00) 

Есть форма, на ней панель и TPageControl, на нём в дизайн-тайме созданы 4 TabSheet'а.
Хочу, чтобы в дизайн-тайме они были с закладками, а в ран-тйме - без (TabVisible:=False).

Пишу:


procedure TFMain.SetDefaults;
var
i:Integer;
begin
for i:=0 to ControlCount-1 do
  if (Controls[i] is TTabSheet) then
   TTabSheet(Controls[i]).TabVisible:=False;
end;


Не работает. ControlCount=2

Пишу

procedure TFMain.SetDefaults;
var
i:Integer;
begin
for i:=0 to pcMain.PageCount-1 do
  TTabSheet(pcMain.Pages[i]).TabVisible:=False;
end;


Работает со свистом.

Почему? Почему 4 TabSheet'а не хранятся в массиве FMain.Controls?


Ega23   (2005-03-17 14:24:00) [1]

2 Юрий Зотов ©   (17.03.05 14:13) [5]

Понял, спасибо...


Юрий Зотов   (2005-03-17 14:13:00) [2]

> Ega23 ©   (17.03.05 14:08) [3]

Список Components относится к Owner.
Cписок Controls относится к Parent.

Owner у TabSheet'ов - форма. А parent TabSheet'ов - PageControl.


begin...end   (2005-03-17 14:10:00) [3]

> Ega23 ©   (17.03.05 14:08) [3]

А какая связь между ComponentCount и Controls?


Ega23   (2005-03-17 14:08:00) [4]

А почему они должны там храниться?

Да, но ComponentCount всё правильно показывает, 6.


Юрий Зотов   (2005-03-17 14:07:00) [5]

> Почему? Почему 4 TabSheet'а не хранятся в массиве
> FMain.Controls?

Потому что parent TabSheet'ов - не форма, а PageControl.


begin...end   (2005-03-17 14:01:00) [6]

> Ega23 ©   (17.03.05 13:41)

> Почему 4 TabSheet'а не хранятся в массиве
> FMain.Controls?

А почему они должны там храниться?

ShowMessage(TabSheet.Parent.Name)


Наверх

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