| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Стиль XP |
| Автор: SantaXP 21.11.2003, 17:00 |
| Хотелось бы узнать, как в Delphi 7 можно реализовать поддержку стиля WindowsXP. Заранее благодарен! |
| Автор: <Spawn> 21.11.2003, 18:22 |
| Вкладка Win32, компонент XPManifest |
| Автор: SantaXP 21.11.2003, 22:40 |
| А как его использовать |
| Автор: Illusion Dolphin 21.11.2003, 23:46 |
| Просто ложишь на форму и всё... дальше делать ничего не надо... |
| Автор: beif 22.11.2003, 09:07 |
| Да, XPManifest сам все сделает, только если попытаться программу запустить в неХР, то будет облом... |
| Автор: SantaXP 22.11.2003, 11:25 |
| А если запускаешь в XP, а ничего |
| Автор: Pakshin A. S. 22.11.2003, 19:13 |
| Либо Delphi корява, либо компонент корявый, либо XP корявый, ну (без обид |
| Автор: Dmitrik 23.11.2003, 02:38 | ||
Вне ХР и не должно быть ничего. Visual Styles поддерживает только ХР. |
| Автор: Jey_k 23.11.2003, 14:36 |
| XP Manifest устанавливает интерфейсные связи с ядром самой системы и транслирует элементы дизайна в проект пользователя, просто кидаем компонент на форму и все. Работает только в самой XP |
| Автор: Dmitrik 23.11.2003, 15:27 | ||
Если быть совсем точным, то с ComCtl32.dll версии 6. |
| Автор: SantaXP 23.11.2003, 21:18 |
| А не могли бы вы сказать где эта библеотека находится, а то я её вообще не нашёл!!! Может такое быть |
| Автор: Dmitrik 24.11.2003, 09:32 | ||
Ты не туда копаешь. Эта библиотека лежит в системном каталоге (например, 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 |
| Автор: SantaXP 26.11.2003, 18:41 |
| Так как этот файл сделать |
| Автор: 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 | ||
Не согласен! 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 |
| Хм... спасибо, щас попробую, а вот использовать каким образом? Подсоединять к проетку или что? |