Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Как сделать форму НЕ(!) прозрачной?


Автор: KeeRush 16.1.2010, 22:42
Есть куча FAQ как сделать форму прозрачной а я столкнулся с обратной проблемой smile
Суть: форма рисуется прозрачной когда включена тема Windows XP. В классической теме все рисуется нормально. В Висте тоже все ок. Настройки формы перерыл все. Компонент XP Manifest тоже не влияет на баг. Проекту уже около года но я все вермя работаю в классическом стиле и не знаю когда появился глюк. Может кто подскажут куда хоть копать то?
Скриншот прилагается. 

Автор: Frees 16.1.2010, 22:51
может это не прозрачность а глюк отрисовки? 

Автор: KeeRush 16.1.2010, 22:58
Согласен. Наверное не правильно выразился. При первой отрисовке формы она копирует на себя то изображение которое под ней и потом с этим изображением и рисуется. 

Автор: KeeRush 16.1.2010, 23:59
Локализовал проблему. Дело всетаки в XPManifest. Я не учел что при удалении компонента его модуль не удяляется из Uses. В общем проблема возникает когда подключаю модуль XPMan из комплекта поставки Delphi 7. Собственно не сильно расстроюсь если программа не будет поддерживать стили XP но очень интересно откуда такой глюк.

Автор: Frees 17.1.2010, 00:37
Груб боксы у тебя стандартные?, вроде только на них отрисовка не работает, попробуй их положить на панели.....

Автор: AntonN 17.1.2010, 01:48
включена ли у формы Doublebuffered:=true? 
попробуй в formcreate насильно сделать doublebuffered:=false;

сталкивался с этим постоянно (двойная буферизация, манифест и не классическая схема)

Автор: KeeRush 17.1.2010, 02:04
AntonN, совершенно верно. У формы DoubleBuffered был выставлен True. Поставил False и все заработало. Принял на заметку. Спасибо! 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)