Совокупность правил и методов поведения, оформления и отрисовки элементов управления называется визуальным стилем (visual style). Совместно с Windows ХР поставляется один готовый стиль.
Если разработчик хочет, чтобы его приложение могло использовать новые возможности Windows ХР, он должен включить в состав проекта специальный ресурс - манифест (manifest). Манифест представляет собой документ XML, содержащий необходимую для библиотеки ComCtl32.dll версии 6 информацию.
Такое приложение будет чувствовать себя комфортно в среде Windows ХР. Но и при запуске в старых операционных системах оно просто будет использовать стандартный набор возможностей ComCtl32.dll версии 5 и выглядеть, как и любое другое приложение.
Кроме этого, Windows ХР также имеет библиотеку ComCtl32.dll версии 5 и именно она используется по умолчанию.
Манифест Windows ХР
Итак, начнем с манифеста. Он представляет собой документ в формате XML, содержащий всю информацию, необходимую для взаимодействия приложения и библиотеки ComCtl32.dll версии 6.
С Примечание ^
Следует отметить, что манифесты широко используются во многих продуктах и технологиях, работающих в операционных системах Microsoft. С полной схемой XML манифеста вы можете ознакомиться в документации Microsoft MSDN.
Пример манифеста представлен в листинге 6.1.
j Листинг 6.1. Манифест Windows ХР j
<?жп1 version="1.0"
encoding="UTF-8"
standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.vl"
manifestVersion="1.0">
<assemblyldentity
version= "1.0.0.0"
proces s orArchitecture="X8 6"
name="CompanyName.ProductName.YourApp"
type="win32"
/>
<description>Your application description here.</description>
<dependency>
<dependentAs s embly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccfldf"
language="*"
/>
</dependentAs s emblу>
</dependency>
</assembly>
Обратите внимание, что в элементе
<dependency>
<dependentAssembly>
<assemblyldentity>
описывается версия системной библиотеки, используемой приложением для отрисовки элементов управления.
При загрузке приложения операционная система Windows ХР считывает манифест (если он есть) и получает информацию о том, что для выполнения приложения потребуется библиотека ComCtl32.dll версии 6.
Помимо этой информации манифест может содержать и другие необходимые сведения о приложении и условиях его работы. Например, общая информация о приложении и его версии представлены элементом <AssemblyIdentity>.
Вы можете добавить манифест в ваше приложение двумя способами:
□ использовать компонент TXPManifest;
□ добавить манифест в ресурсы приложения вручную. Рассмотрим их.
Компонент TXPManifest
На странице Win32 Палитры компонентов Delphi 7 имеется компонент TXPManifest. Будучи добавленным в проект, он обеспечивает компиляцию манифеста Windows ХР в исполняемый файл приложения. В качестве основы используется стандартный манифест Delphi для Windows ХР, содержащийся в файле ресурсов Delphi7\Lib\WindowsXP.res (листинг 6.2).