Продолжаем борьбу с манифестами...
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 12.09.03 15:34
Оценка:
Начало было здесь
Автор: Flamer
Дата: 12.09.03
.

Итак, опытным путем установлено, что Гуглевский тулбар импортирует из uxtheme.dll четыре функции:


CloseThemeData
DrawThemeBackground
OpenThemeData
IsAppThemed


Причем зуб даю, что он не сам отрисовывает все, т.к. нету DrawThemeText, например (а надписи на кнопочках есть). Причем уже стало ясно (выяснено опытным путем), что если приложение, загружающее dll, поддерживает темы XP, то и dll, содержащая окошки, будет поддерживать эти самые темы.

Вопрос: в чем косяк, если мы имеем тулбар аля гуглевский, написанный на BCB 5.0, использующий только стандартные элементы управления Windows, содержащий внутри манифест — не подхватывает XP Visual Styles?

Второй вопрос: нафига манифест в ресурсах dll, если dll наследует логику отображения элементов от exe (был написан тестовый проектик — exe и dll c формой; наличие манифеста для exe автоматом делало вызываемую dll использующей стили XP; обратное неверно. Отсутствие манифеста у exe при наличии манифеста у dll эффекта не давало.)?

Третий вопрос: на чем лучше вешаться? Какие веревки мягче и мыло мыльнее? Руками отрисовывать поддержку XP-тем — да я повешусь быстрее Красота требует жертв, но не таких-же... Так что это будет последним вариантом.

И последний, четвертый вопрос: ткните носом в проект с исходниками, поддерживающий темы и реализующий тулбар для IE (очень хочется душевно взглянуть — где я туплю?).

З.Ы. Компоненты готовые скачать — не предлагать Условие задачи — только VCL-компоненты — обертки над стандартными Windows-контролами (BUTTON, EDIT и пр.).
Re: Продолжаем борьбу с манифестами...
От: Odi$$ey Россия http://malgarr.blogspot.com/
Дата: 12.09.03 15:41
Оценка:
Здравствуйте, Flamer, Вы писали:

F>И последний, четвертый вопрос: ткните носом в проект с исходниками, поддерживающий темы


вот это мыслей не навеяло — http://www.rsdn.ru/article/winshell/themes.xml
Автор(ы): Акжан Абдулин
Дата: 04.12.2001
?
Re[2]: Продолжаем борьбу с манифестами...
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 12.09.03 15:46
Оценка:
Здравствуйте, Odi$$ey, Вы писали:

OE>Здравствуйте, Flamer, Вы писали:


F>>И последний, четвертый вопрос: ткните носом в проект с исходниками, поддерживающий темы


OE>вот это мыслей не навеяло — http://www.rsdn.ru/article/winshell/themes.xml
Автор(ы): Акжан Абдулин
Дата: 04.12.2001
?


Перечитал вдоль/поперек... И все-же неясно, почему для dll такое поведение странное... Отрисовать самому — это я всегда успею сделать, если совсем уж захочется, но ведь есть совершенно халявный способ — эти самые пресловутые манифесты. Вот и я хочу нахаляву А не выходит...
Re[3]: Продолжаем борьбу с манифестами...
От: Odi$$ey Россия http://malgarr.blogspot.com/
Дата: 12.09.03 16:04
Оценка:
Здравствуйте, Flamer, Вы писали:

OE>>вот это мыслей не навеяло — http://www.rsdn.ru/article/winshell/themes.xml
Автор(ы): Акжан Абдулин
Дата: 04.12.2001
?


F>Перечитал вдоль/поперек...


заталкивал манифест в ресурсы с кодом ISOLATIONAWARE_NOSTATICIMPORT_MANIFEST_RESOURCE_ID ?
перед включнием windows.h определял константу

#define ISOLATION_AWARE_ENABLED 1


?
Re[4]: Продолжаем борьбу с манифестами...
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 12.09.03 16:30
Оценка:
Здравствуйте, Odi$$ey, Вы писали:

OE>Здравствуйте, Flamer, Вы писали:


OE>>>вот это мыслей не навеяло — http://www.rsdn.ru/article/winshell/themes.xml
Автор(ы): Акжан Абдулин
Дата: 04.12.2001
?


F>>Перечитал вдоль/поперек...


OE>заталкивал манифест в ресурсы с кодом ISOLATIONAWARE_NOSTATICIMPORT_MANIFEST_RESOURCE_ID ?

OE>перед включнием windows.h определял константу

OE>
OE>#define ISOLATION_AWARE_ENABLED 1
OE>


OE>?


Ага, я этот манифест аж три раза заталкивал (константы 1, 2, и 3). И ISOLATION_AWARE_ENABLED определял...
Re[5]: Продолжаем борьбу с манифестами...
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 12.09.03 16:51
Оценка:
Здравствуйте, Flamer, Вы писали:

[]

F>Ага, я этот манифест аж три раза заталкивал (константы 1, 2, и 3). И ISOLATION_AWARE_ENABLED определял...


Блин, по ходу у меня старые заголовочники commctrl.h... Нету там никаких упоминаний ISOLATION_AWARE_ENABLED. А от седьмой студии commctrl.h не подходит Ругаицца билдер почем зря...

Кто знает, где скачать новые версии хидеров для билдера? Сайт борланда по теме молчит, зараза...
Re[6]: Продолжаем борьбу с манифестами...
От: Odi$$ey Россия http://malgarr.blogspot.com/
Дата: 12.09.03 17:02
Оценка:
Здравствуйте, Flamer, Вы писали:

F>>Ага, я этот манифест аж три раза заталкивал (константы 1, 2, и 3). И ISOLATION_AWARE_ENABLED определял...


F>Блин, по ходу у меня старые заголовочники commctrl.h... Нету там никаких упоминаний ISOLATION_AWARE_ENABLED. А от седьмой студии commctrl.h не подходит Ругаицца билдер почем зря...


гы, у кого там мысли сходятся я тока что закончил поиск ISOLATION_AWARE_ENABLED по билдеровским h-никам с тем же результатом
Re[7]: Продолжаем борьбу с манифестами...
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 14.09.03 08:03
Оценка:
Здравствуйте, Odi$$ey, Вы писали:

[]

OE>гы, у кого там мысли сходятся я тока что закончил поиск ISOLATION_AWARE_ENABLED по билдеровским h-никам с тем же результатом


Все, иду сушить весла Абидна, блин. Пускай пока будет без поддержки XP-тем... Тем более, что, по разведданным, в VCL содержится пару косяков, проявляющихся именно при поддержке тем XP. Ну и ладно, не очень-то и хотелось
Re[6]: Продолжаем борьбу с манифестами...
От: akasoft Россия  
Дата: 14.09.03 09:14
Оценка:
Здравствуйте, Flamer, Вы писали:

F>Блин, по ходу у меня старые заголовочники commctrl.h... Нету там никаких упоминаний ISOLATION_AWARE_ENABLED. А от седьмой студии commctrl.h не подходит Ругаицца билдер почем зря...


Т.е. похоже дело всё в устаревших хидерах? А с новыми можно будет и dll-ный манифест цеплять? А вот, кстати, в Студии не пробывал опыт ставить? Ма-аленький примерчик, если заработает, сразу будет ясно...

F>Кто знает, где скачать новые версии хидеров для билдера? Сайт борланда по теме молчит, зараза...


А если выкусить нужное да подсунуть? В Дельфи так игрался с directX. Думаю, и в Билдере можно. Чтобы посмотреь прокатит-не прокатит...
... << RSDN@Home 1.1 beta 2 >>
Re[7]: Продолжаем борьбу с манифестами...
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 15.09.03 08:22
Оценка:
Здравствуйте, akasoft, Вы писали:

A>Здравствуйте, Flamer, Вы писали:


F>>Блин, по ходу у меня старые заголовочники commctrl.h... Нету там никаких упоминаний ISOLATION_AWARE_ENABLED. А от седьмой студии commctrl.h не подходит Ругаицца билдер почем зря...


A>Т.е. похоже дело всё в устаревших хидерах? А с новыми можно будет и dll-ный манифест цеплять? А вот, кстати, в Студии не пробывал опыт ставить? Ма-аленький примерчик, если заработает, сразу будет ясно...



Думаю, не только в хидерах, а еще и в либах, в частности commctrl.lib. Так что просто выкусить нужное не прокатит — формат либ у M$ и Багланда разный...
Re[8]: Продолжаем борьбу с манифестами...
От: psl  
Дата: 13.10.03 19:24
Оценка:
У меня та же проблема с XP стилем в плагине к IE. Удалось ли кому ее решить (на Builder`e 5)?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.