Самоучитель по Delphi 7 для профессионалов




Что такое библиотека ComCtl32 - часть 2


Проблема эта решается включением в дистрибутив и запуском на машине клиента приложения 50comupd.exe, которое находится на дистрибутивном диске Delphi 7 в папке \info\extras\comctl\ и обновляет библиотеку, или его можно скачать с сервера Microsoft . Ни в коем случае не пытайтесь просто ("руками") заменить ComCtl32.dll на более новую версию — это запрещено Microsoft и последствия могут вас серьезно огорчить.

Размер 50comupd.exe составляет около 500 Кбайт, так что если оно и "утяжелит" ваш дистрибутив, то ненамного. Есть и более масштабный способ решения этой проблемы — установить последнюю версию Internet Explorer, который включает в себя новую библиотеку ComCtl32. Если у вас дело упирается только в элементы управления, то этот способ избыточен. Но если вы используете в распространяемом приложении другие решения от Microsoft, привязанные к IE (скажем, криптографическую библиотеку CryptoAPI или стек протоколов Internet в динамической библиотеке Winlnet.dll — на нем базируется большинство сетевых технологий в Delphi 7), то он может оказаться необходимым.

Проверка версии библиотеки элементов управления делается с использованием функции из модуля ComCtrls.pas:

function GetComCtlVersion: Integer;

Она возвращает номер установленной версии библиотеки в виде пары цифр. Каждая версия выходит обычно вместе со следующей версией обозревателя Internet. Вот константы, описанные также в модуле ComCtrls.pas:

const

ComCtlVersionIE3 = $00040046; 

ComCtlVersionIE4 = $00040047; 

ComCtlVersionIE401 = $00040048;

 ComCtlVersionIE5 = $00050050; 

ComCtlVersionlESOl = $00050051;

 ComCtlVersionIE6 = $00060000;

В Windows 2000 и ME библиотека элементов управления имеет версию $00050051 (5.81). Наконец, в следующей ОС от Microsoft — Windows XP (ex-Whistler) — сделаны кардинальные изменения внешних возможностей интерфейса пользователя. И основой их станет 6-я версия библиотеки ComCtl32.

И о совместимости. Не нужно быть мудрецом, чтобы понять, что компоненты со страницы Win32 работают только в среде Win32. Когда вы создаете Kylix-совместимое приложение (CLX Application), вместо страницы Win32 в Палитре компонентов появляется страница Common Controls. Находящиеся там компоненты сделаны на основе библиотеки QT (www.trolltech.com) и лицензированы Borland. Во многом они повторяют методы и свойства элементов управления, соответствующих им в Windows, но далеко не всегда. Поэтому, если вы пишете переносимые приложения, забудьте о библиотеке ComCtl32 и странице Палитры компонентов Win32 и пропустите эту главу.




Содержание  Назад  Вперед