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

Ваш аккаунт

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

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

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

Разбираем очередной глюк - любимый всеми TPageControl

8.4K
24 июня 2006 года
Zor
104 / / 23.04.2006
1. Непонятный порядок вывода табов если OwnerDraw = true (ну, пока только мне)

Итак, ложим на форму PageControl, делаем на нем 4 таба.
Ложим рядом кнопку.
На кнопку вешаем код спрятать/показать 3-й таб:
TabSheet3->TabVisible = !TabSheet3->TabVisible;
Запускаем, кликаем - все ok.

Затем, переключаем OwnerDraw в true, добавляем код для OnDrawTab:
Control->Canvas->TextRect(Rect,Rect.left+4,Rect.top+4,PageControl1->Pages[TabIndex]->Caption);
Запускаем, кликаем - заголовки кривые.
Анализ сообщений показал станный порядок вывода табов - 0123 для первого примера и 012 для второго. По моему должно быть 013 или как?

2. PageControl упорно не хочет правильно рисоваться. Глюк подтвердился во многих ПОСТОРОННИХ прогах, где используется динамическое создание/удаление табов.
Для примера - eMule, вкладка Поиск.
Сделайте окно мула мин размера, затем сделайте разный поиск раз 20-30, чтобы открылось много новых вкладок на PageControl.
Пролистайте до самого правого таба, если он не виден.
Теперь кликните на _самом левом видимом табе_ и закройте его.
Теперь закройте появившийся на его месте и так далее, включая и самый правый. Когда на заголовке PageControl останется только кнопка прокрутки, кликните на ней - вуаля. Половина табое есть, половины нет,
PageControl не обновляется.

Комментарии?
246
24 июня 2006 года
GIZMO
1.8K / / 30.07.2004
[QUOTE=Zor] Глюк подтвердился во многих ПОСТОРОННИХ прогах, где используется динамическое создание/удаление табов.
Для примера - eMule, вкладка Поиск.
Комментарии?[/QUOTE]
eMule - писан на Билдере?
8.4K
24 июня 2006 года
Zor
104 / / 23.04.2006
Нет, на VC - в том и прикол. Видимо comctl32 или кто из них - с юмором.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог