ПредишенСледващото

Добре известно е, че VCL-компоненти могат да бъдат създадени динамично по време на изпълнение. Например, ако манипулатор на събитие, свързано с натискането на един бутон, следния код, а след това, когато щракнете върху бутона по време на изпълнение ще бъде едноредов текст Ноле:

Ако TEdit компонент отсъства от палитрата компонент, след това кода също ще бъдат изпълнени успешно - в динамичната създаването на VCL-ком-poneptov не е необходимо да присъстват палитра па компонент.

Обикновено Delphi с контроли работи както следва. Първо, избрана команда Компонент ► Внос ActiveX контрол, ActiveX избран елемент е поставен на първо палитра компонент, а след това - Na форма инспектор обекти и свойства се променят със събития. Възниква въпросът, как да се инициализира ActiveX контрол по време на изпълнение? По-скоро, дали към момента на изпълнение приложение за създаване на работна копие на контрола ActiveX, ако не го регистрирате в палитрата компонент?

От горните разсъждения става ясно, че в допълнение към подготовката за работа и да се създаде работна копие на контрола ActiveX за прилагането на работата изисква да се създаде VCL-kopteyper, които ще бъдат поставени на контрола ActiveX. Ролята на такъв контейнер, в Делфи играе TOleControl клас, декларирани в OleCtrls.pas модул. Основният метод за този клас - InitControlData. При този метод, трябва да се определи GUID на фабричните класове ActiveX контрол, броят на елементите със събития и връзка интерфейс, изпълнявани в манипулаторите на клиент на събития, както и линк към интерфейса на лиценз е необходимо да се обадя методи IClassFactory2 интерфейс. метод InitControlData се нарича автоматично след работа TOleControl дизайнер

Създаване на ново заявление и раздел интерфейс декларира нов клас - най-потомък TOIeControl класа:

Методи за изпълнение и InitControlData EmbeddAX трябва да изглеждат така:

Ние събрахме форма един бутон и да се създаде прост манипулатор събитие:

Сега можете да стартирате вашата кандидатура, и по време на изпълнението, като кликнете върху бутона. ActiveX контрол се появява в тази област. Сменете стойността GUID на фабриката за клас, както следва:

Динамична страница контроли инициализация ActiveX

Фиг. 2.24. Инициализация ActiveX нерегистриран потребител по време на изпълнението приложение

Както първа и втора контролните елементи на теста не са регистрирани в Delphi компоненти палитра. По принцип, по същия начин може да се направи и да е регистриран в сървърите на регистъра COM, които имат ключ на системния регистър в контролния идентификатор раздел GUID клас фабрика. Наличието на този раздел осигурява подкрепа за COM-Ser-Verom IOleClientSite интерфейси, IOleControlSite, IOlelnplaceSite, които са необходими, за да се покаже на ActiveX контрола на клиента.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!