Разбираем очередной глюк - любимый всеми TPageControl
Итак, ложим на форму 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 не обновляется.
Комментарии?
Для примера - eMule, вкладка Поиск.
Комментарии?[/QUOTE]
eMule - писан на Билдере?
Нет, на VC - в том и прикол. Видимо comctl32 или кто из них - с юмором.