Советы по Delphi

       

Как зарегистрировать OCX?


Вы правы, прежде чем использовать OCX, его необходимо зарегистрировать в системном регистре.

Предположим вы создали OCX с именем "test.ocx".

Теперь его необходимо зарегистрировать в системе:

var
OCXHand: THandle;RegFunc: TDllRegisterServer; //добавьте OLECtl в список используемых модулейbegin
OCXHand:= LoadLibrary('c:\windows\system\test.ocx');RegFunc:= GetProcAddress(OCXHand, 'DllRegisterServer'); //чуствительность к регистру?if RegFunc <> 0 then ShowMessage('Ошибка!');FreeLibrary(OCXHand);end;

Для обратной процедуры, "отрегистрации" OCX, вам необходимо всего лишь заменить 'DllRegisterServer' на 'DllUnregisterServer'.

Также для полноты картины вы можете добавить код, извещающий пользователя о процессе регистрации, например так: "Does the file exist" (файл не найден), "Was the call to LoadLibrary successful?" (был ли вызов LoadLibrary успешным?), ...

Некоторые пояснения:

OCX - специфический форма dll, поэтому вы можете загрузить ее в память, используя знакомую уже API функцию LoadLibrary(). OCX экспортирует две функции, осуществляющие ее регистрацию и "отрегистрацию". Для получения адреса этих функций используется соответствующая функция GetProcAddress. После этого остается только вызвать необходимую функцию. И это все! После этого для успокоения души с помощью редактора регистров (regedit.exe) вы можете проверить регистрацию вашего OCX.

[000221]

Содержание раздела