Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2012.01.01;
Скачать: CL | DM;

Вниз

Закладки PageControl   Найти похожие ветки 

 
Oleg   (2010-07-13 00:53) [0]

Здравствуйте.
Выявилась такая проблема:
Есть на форме компонент TPageControl, иногда свойство OwnerDraw выставляется в false, чтобы вручную выводить надписи на закладках определенным шрифтром и цветом. При работе программы в операционной системе Windows7 иногда событие OnDrawTabs компонента не вызывается, вызов этого события не происходит.
Это происходит не на любом компьютере, на котором установлена Window7, преимущественно на тех, где 64-х битная система, но встретилось и на одном с 32-х битной. Еще такое же поведение было замечено на компьютере с системой Windows 2008 Server 64-х битной (при проверке на других компьютерах с такой же системой не воспроизводимо).
Вопрос: как можно попытаться решить данную проблему? Какое событие, может быть, нужно отловить, чтобы сделать ручной вывод требуемых надписей на заголовках панелей TPageControl?
PS проект написан на Delphi 7.
PPS ошибка не плавающая. В смысле, На отдельно взятом компьютере с перечисленными ОС либо работает как надо всегда, либо не работает никогда (закладки остаются пустыми при установке свойства OwnerDraw в false).


 
KilkennyCat ©   (2010-07-13 01:00) [1]

не отлавливать, а вызывать перерисовку вручную.


 
Oleg   (2010-07-13 01:09) [2]


> KilkennyCat ©   (13.07.10 01:00) [1]

В какой момент? Я сам не знаю, когда должна перерисоваться какая-то из закладок, которая, например, была "закрыта" куском окна другого приложения, или часть окна утащили за край рабочего стола, а потом вернули обратно.


 
Германн ©   (2010-07-13 01:16) [3]


> иногда свойство OwnerDraw выставляется в false, чтобы вручную
> выводить надписи на закладках определенным шрифтром и цветом.
>

Ничего не перепутал?


 
Leonid Troyanovsky ©   (2010-07-13 08:04) [4]


> Oleg   (13.07.10 00:53)  

> Есть на форме компонент TPageControl, иногда свойство OwnerDraw
> выставляется в false

Что значит "иногда"? Умерла, так умерла.

> В какой момент?

В OnDrawTab, вестимо.

--
Regards, LVT.


 
Anatoly Podgoretsky ©   (2010-07-13 08:44) [5]

> Oleg  (13.07.2010 00:53:00)  [0]

Ну дык 64 бита же, это в два раза большим количеством надо ворочать, вот и
не успевает.


 
Deltas ©   (2010-07-13 12:53) [6]


> Oleg   (13.07.10 00:53) [0]
> ...иногда свойство OwnerDraw выставляется в false...
> ...иногда событие OnDrawTabs компонента не вызывается...
>

Так что Вам кажется в этом странным?


 
Deltas ©   (2010-07-13 13:10) [7]

Если все-таки это проблема Delphi 7, которая, конечно, не поддерживает версии Windows Vista и выше (программы работают, но встречаются проблемы), попробуйте обрабатывать событие WM_DRAWITEM, оно приходит, когда нужно отрисовать закладку и не только.
P.S. Сначала вызывается виртуальный WndProc(), а отдельные обработчики сообщений потом. Так что в WndProc() сообщение будет обработано раньше.


 
KilkennyCat ©   (2010-07-15 01:18) [8]


> проблема Delphi 7, которая, конечно, не поддерживает версии Windows
> Vista и выше

ну конечно. особенно учитывая TPageControl и доступ к генофонду.


> программы работают, но встречаются проблемы

это высказывание применимо всегда и ко всему, а не только к "D7 и виста"


 
Deltas ©   (2010-07-15 13:59) [9]


> KilkennyCat ©   (15.07.10 01:18) [8]
> это высказывание применимо всегда и ко всему, а не только
> к "D7 и виста"

В D7 и Vista - это вполне определенный набор проблем при работе с графическим интерфейсом, которые заложены в исходных текстах отладочных библиотек (Source), и которые достаточно легко устранить.



Страницы: 1 вся ветка

Текущий архив: 2012.01.01;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.009 c
15-1315686587
Юрий
2011-09-11 00:29
2012.01.01
С днем рождения ! 11 сентября 2011 воскресенье


1-1279025385
antsa
2010-07-13 16:49
2012.01.01
как получит PID процесса ntvdm.exe


2-1317030684
Gu
2011-09-26 13:51
2012.01.01
Передать commandline


15-1315701740
Думкин_
2011-09-11 04:42
2012.01.01
Игоря Шевченко, С Юбилеем!


15-1316092006
Железкин
2011-09-15 17:06
2012.01.01
не включается комп, может кто сталкивался?