Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Стиль XP


Автор: SantaXP 21.11.2003, 17:00
Хотелось бы узнать, как в Delphi 7 можно реализовать поддержку стиля WindowsXP. Заранее благодарен! confused.gif

Автор: <Spawn> 21.11.2003, 18:22
Вкладка Win32, компонент XPManifest

Автор: SantaXP 21.11.2003, 22:40
А как его использоватьconfused.gif

Автор: Illusion Dolphin 21.11.2003, 23:46
Просто ложишь на форму и всё... дальше делать ничего не надо...

Автор: beif 22.11.2003, 09:07
Да, XPManifest сам все сделает, только если попытаться программу запустить в неХР, то будет облом... sad.gif Так что используй XPManifest если программа будет запускаться ТОЛЬКО в ХР

Автор: SantaXP 22.11.2003, 11:25
А если запускаешь в XP, а ничегоconfused.gif!!!???

Автор: Pakshin A. S. 22.11.2003, 19:13
Либо Delphi корява, либо компонент корявый, либо XP корявый, ну (без обид biggrin.gif ) либо ты сам... Выбирай! tounge.gif

Автор: Dmitrik 23.11.2003, 02:38
Цитата(beif @ 22.11.2003, 08:07)
Да, XPManifest сам все сделает, только если попытаться программу запустить в неХР, то будет облом... sad.gif Так что используй XPManifest если программа будет запускаться ТОЛЬКО в ХР

Вне ХР и не должно быть ничего. Visual Styles поддерживает только ХР.

Автор: Jey_k 23.11.2003, 14:36
XP Manifest устанавливает интерфейсные связи с ядром самой системы и транслирует элементы дизайна в проект пользователя, просто кидаем компонент на форму и все. Работает только в самой XP

Автор: Dmitrik 23.11.2003, 15:27
Цитата(Jey_k @ 23.11.2003, 13:36)
XP Manifest устанавливает интерфейсные связи с ядром самой системы

Если быть совсем точным, то с ComCtl32.dll версии 6. smile.gif

Автор: SantaXP 23.11.2003, 21:18
А не могли бы вы сказать где эта библеотека находится, а то я её вообще не нашёл!!! Может такое бытьconfused.gif И если весит немного, то выслать исправно работующую, если вам несложно, конечно!

Автор: Dmitrik 24.11.2003, 09:32
Цитата(SantaXP @ 23.11.2003, 20:18)
А не могли бы вы сказать где эта библеотека находится, а то я её вообще не нашёл!!! Может такое бытьconfused.gif И если весит немного, то выслать исправно работующую, если вам несложно, конечно!

Ты не туда копаешь. Эта библиотека лежит в системном каталоге (например, C:\WINDOWS\System32\) любой версии Win32 и обеспечивает работу с т.н. common controls (т.е. progress bar, spin, tab control, date-time picker и т.п.). Шестая версия этой библиютеки в дополнение ко всему поддерживает также механизм Visual Styles, реализованный в данный момент только Windows XP. "Поддержка" в данном случае означает, что при наличие в у приложения в ресурсах т.н. манифеста, приложение будет показывать стандартные элементы управления (т.е. и "старые", такие как кнопки, списки, edit'ы, и "новые", такие как упомянутые progress bar, spin, tab control, date-time picker) с учетом текущей установленной в системе темы Visual Styles. Переписывание этой библиотеки, скажем, в Windows 2000 ничего не даст: во-первых, она там уже есть, а во-вторых, Windows 2000 не поддерживает Visual Styles.

Автор: SantaXP 24.11.2003, 15:55
Хм, тогда непонятно почему у меня она пашет на XP!

Автор: M!XeR 26.11.2003, 08:57
XPManifest - это обычный файл ресурсов, забадяженный как компонент, в нем хранятся обычные рисунки из ХР и с этим компонентом все будет работать нормально и в 98 винде и в другой...

Автор: Borland_Delphi_6 26.11.2003, 09:42
Помниться, я где-то давал код rc файла, который можно скомпилировать как res, присоеденить к проекту и стиль XP готов!

Автор: pascal 26.11.2003, 11:32
да можно просто этот ресурс кинуть в папку с программой и назвать его имя_программы.manifest (пример: test.exe.manifest)...

На XP может не пахать по тому что у тя может быть вообще стиль Win2000 стоит в XP smile.gif кто тебя знает...

Автор: SantaXP 26.11.2003, 18:41
Так как этот файл сделатьconfused.gif

Автор: Cheba 27.11.2003, 00:10
Можно взять C:\Windows\WindowsShell.manifest и обозвать его как pascal говорил.

Автор: SantaXP 27.11.2003, 17:43
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="1.0.0.0"
processorArchitecture="X86"
name="CompanyName.ProductName.YourApp"
type="win32"
/>
<description>Your application description here.</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"

version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>

Вот текст файла Project1.exe.manifest. Пишет, что некоректно установлено приложение!
Либо ничего не делает!

Автор: Cheba 28.11.2003, 00:14
У меня такой:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
processorArchitecture="*"
version="5.1.0.0"
type="win32"
name="Microsoft.Windows.Shell.shell32"
/>
<description>
Windows Shell
</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
publicKeyToken="6595b64144ccf1df"
language="*"
processorArchitecture="*"
/>
</dependentAssembly>
</dependency>
</assembly>

А кто это тебе такое пишет?

В Мелкомягком кедь специально придумали манифесты шоб меньше проблем было. Когда твой процесс грузит Шелл32.длл, тот (длл) смотрит, а нет ли где там манифесту специального - либо рядом, как тот, что ты постанул, либо в ресурсах, как тут же уже говорили, и если находит - дает тебе конторлы 6-й версии, иначе 5-й. Другим Виндам как-то пофиг - для них это всего лишь ресурс, или файл. Потому они тебе дадут только контролы 5-й версии.

И еще... Что значит ничего не делает?

Автор: -Сергей- 28.11.2003, 17:01
Цитата(M @ 26.11.2003, 12:57)
XPManifest - это обычный файл ресурсов, забадяженный как компонент, в нем хранятся обычные рисунки из ХР

Не согласен!
XPManifest - текстовый ресурс, включающий всебя код, написаный на xml. И рисунков он не содержит!

Автор: Cheba 29.11.2003, 01:48
Хлопцы! А может вам закинуть манифесты, если ниче не лепится, и поюзать Theme API?

Автор: SantaXP 29.11.2003, 19:34
Можно, только поподробней с этого момента...

Автор: Cheba 29.11.2003, 22:51
Смотри модуль UxTheme и MSDN.
Или задавай конкретные вопросы.

Автор: SantaXP 30.11.2003, 13:22
А где этом модуль найти и как его использовать, если говорить конкретней.

Автор: Cheba 30.11.2003, 16:06
Ну при Дэлфи 7 есть. Или в Нете глянь.

Автор: SantaXP 1.12.2003, 17:08
У меня Дельфи 7, только модули не найти.

Автор: Cheba 2.12.2003, 01:30
У меня тут:
C:\Program Files\Borland\Delphi7\Source\Rtl\Win\UxTheme.pas

Автор: SantaXP 4.12.2003, 15:41
Хм... спасибо, щас попробую, а вот использовать каким образом? Подсоединять к проетку или что?

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