Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "KOL";
Текущий архив: 2003.06.19;
Скачать: [xml.tar.bz2];

Вниз

Если у программы активно модальное окно, то при активизации тем   Найти похожие ветки 

 
Alexander   (2002-09-12 16:32) [0]

Windows XP программа не перерисовывает свой интерфейс в соответствии с темой. Если модального окна нет, то всё перерисовывается нормально.


 
Vladimir Kladov   (2002-09-14 11:29) [1]

Applet есть?


 
Alexander   (2002-09-15 08:31) [2]

Нет, небыло.
Попоробовал с ним перекомпилировать - результат тот-же.


 
Vladimir Kladov   (2002-09-16 15:58) [3]

Так это, компонент WinXP на форме-то лежит?


 
Alexander   (2002-09-17 09:20) [4]

Сейчас речь не про компоненты идёт - о них отдельно.
Не перерисовывается само окно! Т.е. оно остаётся таким, как будто темы и не были включены (квадратным, со стандартным заголовком и пр.)


 
BorisMor   (2002-09-17 10:08) [5]

Помоему без MHXp темы не работают.
Темы вобще только с Delphi 7 стали поддерживаться.


 
Alexander   (2002-09-17 10:32) [6]

Темы не работают, если в ресурсы проекта не включить xml файл, который описывает эти самые ресурсы!
Здесь же проблема в другом: если у программы нет активного модального окна, то она нормально обрабатывает сообщение Windows о изменении оформления, а вот когда активно модальное окно, то...


 
Vladimir Kladov   (2002-09-18 11:02) [7]

Ладно, тогда так. Кто -нибудь может повторить эффект, у кого есть ХР?


 
Gandalf   (2002-09-18 11:45) [8]

>Ладно, тогда так. Кто -нибудь может повторить эффект, у кого >есть ХР?
Попробую.


 
Alexander   (2002-09-18 14:19) [9]

to Vladimir Kladov
рекомендую VMWare (www.vmware.com) - на одном компе одновременно можно работать во всех версиях винды. Сам так проверяю совместимость своих программ. Тут только нужен комп не очень слабый (Pentium2 хватит). Будут сложности с установкой или регистрацией :), пиши.


 
Gandalf   (2002-09-19 09:26) [10]

to Alexander
Не удается достичь такого эффекта - может кинешь пример.


 
Vladimir Kladov   (2002-09-19 10:10) [11]


> to Vladimir Kladov
> рекомендую VMWare (www.vmware.com) - на одном компе >одновременно можно работать во всех версиях


У меня П2. Но под ним 95-я еле живая, а уж ХР - я не знаю просто...


 
Alexander   (2002-09-19 13:36) [12]

To Gandalf:
выслал.
Что важно, запускать программу нужно при активных темах. Вызвать модальное окно, а потом отключьть и снова включить темы.

Ещё, почему-то мне в этот проект не удалось подключить поддержку тем XP - из-за них этого ресурса под XP кнопки перестают работать на форме. В чём может бють дело? xml файл без ошибок.


 
Alexander   (2002-09-19 14:25) [13]

Я, конечно, ещё перепроверю, но по моему, после установки KOL 1.46/47 перестал работать ресурс поддержки тем XP ?!!


 
SPeller   (2002-09-19 15:04) [14]


> Alexander © (19.09.02 14:25)

Я делаю номного по-сложнее, без компонентов, просто кидаю ресурс с манифестом ХР в папку проекта и пишу {$R ...} чтобы он верочно был в ЕХЕ-шнике. (не доверяю я компонентам:)))


 
Alexander   (2002-09-19 15:25) [15]

так я тоже без компонентов, но и не вручную - просто добавляю в проект программы файл *.rc (Project -> Add to project...)


 
Gandalf   (2002-09-19 18:45) [16]

Просьба прочитать конец сообщения!

To Alex:
>выслал.
Пока не дошло.

>Что важно, запускать программу нужно при активных темах.

Я и не отключаю.

>Вызвать модальное окно, а потом отключьть и снова включить >темы.

Лихо закручено. Так может в WinXP бага?

>Ещё, почему-то мне в этот проект не удалось подключить >поддержку тем XP - из-за них этого ресурса под XP кнопки >перестают работать на форме. В чём может бють дело? xml файл >без ошибок.

Без включения (в проект ) поддержки XP тем, не будет и XP отрисовки. А как проявляется нежелание, неподключения - не подкомпиливает xml или как?


to Alexander ©
>Я, конечно, ещё перепроверю, но по моему, после установки KOL >1.46/47 перестал работать ресурс поддержки тем XP ?!!

Странно - ресурс он и есть ресурс. КОЛ"у тежело на это влиять - хотя если вспомнить локализацию... всякое может быть.

to SPeller © (19.09.02 15:04)
>Я делаю номного по-сложнее, без компонентов, просто кидаю >ресурс с манифестом ХР в папку проекта и пишу {$R ...} чтобы >он верочно был в ЕХЕ-шнике. (не доверяю я компонентам:)))

А зря не доверяете ;), кстати может у кого есть дополнительная инфа по манифестам - какой нибуть рассширенный синтаксис и статейка какая. Интересно.

ЗЫ: Да тут еще идейка вдруг пришла, я когда компонент делал - получалось то работает, то нет. Так вот если уж вы все ручками делаете, не забываете InitCommonControls; в код добавлять?


 
SPeller   (2002-09-19 19:47) [17]


> Так вот если уж вы все ручками делаете, не забываете InitCommonControls;
> в код добавлять?

Без инита этого не пробовал - всегда с ним делаю, даже не зная что он делает. Просто прочитал в хелпе что надо :-))


 
Alexander   (2002-09-20 09:02) [18]

to Vladimir Kladov
>У меня П2. Но под ним 95-я еле живая, а уж ХР ...

Ну у меня на ноутбуке тоже Р2 и 64 метра памяти, так я на нём под Win2000 нормально работаю, да ещё и VMWare запускаю. Правда P4 на работе - это поприятнее будет, без вопросов.

to Gandalf
>Без включения (в проект ) поддержки XP тем, не будет и XP
>отрисовки. А как проявляется нежелание, неподключения - не
>подкомпиливает xml или как?

Ладно, сейчас не будем затрагивать тему поддержки XP. Я ведь с самого начала что написал (может и не очень понятно): не перерисовывается заголовок онна при переключении тем! То есть при отключении тем и включении обратно моё приложение выглядит не синеньким и округлым, а остаётся с обычным, старым видом, каким было до этого. То есть, когда отключили темы XP, то оно стало нормальным (да и куда оно денется :)) ), а вот когда включаю темы обратно, то ... оно остаётся "нормальным", а не таким, как все.

>Да тут еще идейка вдруг пришла, я когда компонент делал -
>получалось то работает, то нет. Так вот если уж вы все
>ручками делаете, не забываете InitCommonControls; в код
>добавлять?
Добавлять действительно забывал, и действительно то работало, то нет, но, как я описал выше, сейчас не об этом.


 
Vladimir Kladov   (2002-09-20 11:29) [19]

Alexander © (19.09.02 15:25)

> так я тоже без компонентов, но и не вручную - просто добавляю
> в проект программы файл *.rc (Project -> Add to project...)

А какая разница - вручную или нет. директива {$R все равно добавляется в dpr. Может, сам ресурс неверно оформлен? В VCL он работает?


 
Alexander   (2002-09-20 11:47) [20]

Ладно, похоже мы не совсем понимаем друг друга. Я скомпилировал программу совсем без ресурса поддержки XP. Запустил под XP с модальным окном, вот как это выглядит:
<A href=" http://usefulsoft.com/download/img1.jpg"> http://usefulsoft.com/download/img1.jpg</a>
А вот как стало выглядеть после отключения и обратного включения тем:
<A href=" http://usefulsoft.com/download/img2.jpg"> http://usefulsoft.com/download/img2.jpg</a>
Я там специально на фоне проводник запустил, чтобы почувствовать разницу для img2.


 
Gandalf   (2002-09-20 15:56) [21]

Все, понял. А проводник ты зря запустил - ты бы лучше сапер открыл с таблицей чемпионов. Друзья это великий момент - мы нашли WinXP баг! (Я так понимаю, поскольку даже у M$ это работает неправильно, то значит баг.)


 
Alexander   (2002-09-20 16:15) [22]

Да, всё-таки это баг XP. Проверял и с другими программами, даже от MS. Приятно самому найти баг в Windows :-)))


 
Vladimir Kladov   (2002-09-21 11:09) [23]

Подождите. А что у проводника-то не так?


 
Gandalf   (2002-09-21 12:52) [24]

>Подождите. А что у проводника-то не так?
С ним как раз все нормально. На нем баг не виден.


 
Vit@l   (2002-09-21 19:11) [25]

Народ, при смене тем всем приложениям отсылается сообщение WM_THEMECHANGED. Видимо на него и надо реагировать


 
Alexander   (2002-09-22 08:53) [26]

А вы попробуйте у самого проводника вывести About и те-же манипуляции (то есть отключить и включить темы) :-))).
Результат не заставит себя ждать. Поможет только логаут.
Раз уж сам проводник с этим не справляется, то ...

У кого есть SP1 - проверьте, если не сложно, может там исправили?


 
Vit@l   (2002-09-22 11:01) [27]

Да действительно... У меня какое-то время, когда было звпущено несколько программ(кстати преимущественно несколько експлореров) вдруг резко изчезала моя тема и появлялась классическая - без спросу. Потом все резко глючило итд. И так случалось каждый раз. После формата вроде все пока ок, тьфу, тьфу, тьфу


 
Vladimir Kladov   (2002-09-23 17:08) [28]

У меня в msdn (jule,2001) нет WM_THEMECHANGED. Код какой? И топик бы привести. А то не совсем понятно, как на него реагировать-то. Может, реакцию лучше присоединить в комоненте MhXP ?

После format c: исправилось? Или что за формат такой? :)


 
Gandalf   (2002-09-23 19:46) [29]

>У меня в msdn (jule,2001) нет WM_THEMECHANGED. Код какой? И >топик бы привести. А то не совсем понятно, как на него >реагировать-то. Может, реакцию лучше присоединить в комоненте >MhXP ?

Но тогда, он из MCK перейдет в KOLnMCK, при этом он все равно не сможет добавлять ресурс XP в чистый KOL проект. Думаю лучше так не деалть - тем более, что все-таки как нибуть сделаю KOLProjectAdv=KOLProject+XP+VersionInfo.

Мой MSDN не новее, но вот из Инета:

WM_THEMECHANGED Notification

--------------------------------------------------------------------------------

The WM_THEMECHANGED message is broadcast to every window following a theme change event. Examples of theme change events are the activation of a theme, the deactivation of a theme, or a transition from one theme to another.

A window receives this message through its WindowProc function.


Syntax

WM_THEMECHANGED

WPARAM wParam
LPARAM lParam;

Parameters

wParam
Reserved.
lParam
Reserved
Return Value

If an application processes this message, it should return zero.

Remarks

Themes are specifications for the appearance of controls, so that the visual element of a control is treated separately from its functionality.

To release an existing theme handle, call CloseThemeData. To acquire a new theme handle, use OpenThemeData.

Following the WM_THEMECHANGED broadcast, any existing theme handles are invalid. A theme-aware window should release any pre-existing theme handles when it receives the WM_THEMECHANGED message. It may optionally open a new theme handle if the IsThemeActive function returns TRUE.

Notification Requirements

Minimum DLL Version None
Header Declared in Winuser.h, include Windows.h
Minimum operating systems Included in Windows XP


 
Кладов   (2002-09-25 21:47) [30]

Такое ощущение, что раз все делается само (мы ведь не обращаемся нигде к Open/CloseThemeData), то и обработку WM_THEMECHANGED должен выполнить DefWindowProc. А если он этого не делает, то это действительно баг самого ХР. Почему проявляется только при наличии модального окна: подозреваю, что связано с тем, что в это время все прочие окна приложения находятся в состоянии disabled, т.е. Enabled = false. Возможно, по замыслу архитекторов, сообщение посылается не всем окнам, а только тому, которое с точки их зрения является главным. Возможно, только тем, которые имеют в расширенном стиле (ExStyle) WM_EX_APPWINDOW. Проверить можно так: добавить такой стиль к модальному окну. На панели задач появится еще одна кнопка, но для проверки это несущественно. После чего еще раз повторить переключение тем.


 
Vit@l   (2002-09-25 22:34) [31]


> После format c: исправилось? Или что за формат такой? :)

Ага, именно после него.
> Возможно, по замыслу архитекторов, сообщение посылается
> не всем окнам, а только тому, которое с точки их зрения
> является главным

Тогда мож вручную его всем отсылать? :)



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

Форум: "KOL";
Текущий архив: 2003.06.19;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.54 MB
Время: 0.011 c
6-60306
ZDN
2003-04-15 08:55
2003.06.19
Передача потока данных с аудиокарты на стевуху.


14-60366
ghossst
2003-05-30 14:29
2003.06.19
Внимание!Интересный проект


14-60320
Сергей Суровцев
2003-06-03 20:13
2003.06.19
Принтер HP LJ1000 - перевод страницы.


1-60202
Unknown user
2003-06-04 20:04
2003.06.19
Что обозначает исключение


4-60476
lutik
2003-04-16 12:20
2003.06.19
Как сменить канву заголовка окна





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский