![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| xackera |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 17.6.2008 Где: USSR Репутация: нет Всего: нет |
Доброго времени суток всем!
Возникла следующая проблема: в программе есть несколько форм - допустим:DataModule, главная форма, форма авторизации и заставка. Для построения интерфейса используютя компоненты от DevExpress 13.1 VCL. На DataModule размещен TdxSkinController, который скинет все формы в приложении. При старте приложения инициализируется датамодуль, форма заставки и форма авторизации. Необходимо сделать так, чтобы заставка не скинилась. Форма заствки имеет класс TForm, главная и форма авторизации TdxRibbonForm. Заставка создаётся при помощи компонента TJvTransparentForm в режиме tfmLayeredWindow. Довольно удобный компонет для создания красивой формы. Здесь посылают в документацию, я пытался сделать как написанов документации (довольно скудной кстати), но заставка всё равно скинится - причём довольно странным образом - вместо "красивой" формы появляется чёрный прямоугольник (скин DarkSide)/ У кого нибудь сть идеи как это побороть? Это сообщение отредактировал(а) xackera - 31.1.2014, 19:52 |
|||
|
||||
| xackera |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 17.6.2008 Где: USSR Репутация: нет Всего: нет |
Проблема решилась достаточно просто. Суть её заключалось в том, что компонент TJvTransparentForm при создании прозрачной формыв режиме tfmLayeredWindow, создаёт дополнительную прозрачную форму класса TJvControlForm на которой размещает контролы с основной формы. Дополнительная форма расплагается над основной. Основную форму TJvTransparentForm преобразует в "слоёное" при помощи UpdateLayeredWindow.
TdxSkinController перехватывает сообщения WndProc для применения скина к любому окну в приложении. В документации от devExpress написано, что для запрета применения скина к какой либо форме необходимо в событии SkinForm компонента TdxSkinController необходимо прописать:
Соответственно выяснив, что TJvTransparentForm создаёт дополнительную форму, а так же учитывая, что "слоённое" окно не получает сообщения от ОС, выше приведённый код модифицируется:
И всё работает как надо. Это сообщение отредактировал(а) xackera - 4.2.2014, 10:55 |
||||
|
|||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |