Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Последние темы форума

Показать новые сообщения »

Почтовая рассылка

Подписчиков: 11673
Последний выпуск: 19.06.2015

Неправильная работа Page Control при попытке скрыть страницу. Builder 6

1.1K
28 января 2015 года
Ухух
139 / / 05.05.2006
Столкнулся с тем, что не удается правильно сделать невидимой страницу в PageControl в Builder6.
Если в инспекторе объектов для какой -нибудь страницы выставить свойство TabVisible=false, то страница исчезает в режиме редактирования, но в режиме исполнения программы она становится видимой , а вместо нее невидимой становится последняя страница PageControl-а.
И, если в режиме редактирования сделать невидимыми несколько страниц, они правильно исчезнут в режиме редактирования, но в режиме исполнения они будут видимыми, а невидимыми станут последовательно несколько страниц с конца , столько, сколько и было сделано невидимыми в инспекторе объектов.
Аналогично все работает при запрещении отображения в режиме исполнения:
 
Код:
PageControl3->Pages[0]->TabVisible=false;
 PageControl3->Pages[3]->TabVisible=false;
в режиме исполнения исчезнут не 1 и 4 страница , а последняя и предпоследняя (сколько страниц всего запретили - столько и исчезнет подряд с конца).

Уточнение: неправильная работа начинается как только у PageControl появляется событие PageControlxxDrawTab. Если события нет - все работает правильно.

Увы, еще уточнение: в общем случае работает неправильно.

Кто-нибудь сталкивался и как боролся, кто кого победил?

Как ограниченно приемлемое решение остается использование свойство TabSheet Highlighted:
Код:
void __fastcall TForm1::PageControl1Change(TObject *Sender)
{
  short unsigned int tab_max;
 short unsigned int i;
 
 tab_max=PageControl1->PageCount;//общее число страниц включая и невидимые
 i=0;
 while(i<tab_max){
                  PageControl1->Pages[i]->Highlighted=false;
                  if(i==PageControl1->ActivePageIndex){
                                                      PageControl1->Pages[i]->Highlighted=true;
                                                       }
                   i++;
                   }

 }
но, тут очевидные ограничения : отсутствие выбора шрифта язычка выбранной страницы и невозможность выбора цвета выделения.

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог