Страница 2 из 42 Компонент TOLEContainer TObject->TPersistent-”TComponent->TControl—>TWinControl—> •>TCustomControl-”TOLEContainer Модуль TOCTRL Страница Палитры компонентов System Загрузить объект OLE в контейнер можно тремя путями: • созданием нового объекта или связыванием с уже существующим через вызов диалога InsertOLEObjectDIg; • "перетаскиванием" объекта из сервера OLE в форму, содержащую контейнер, с помощью Drag&Drop; • помещением объекта из буфера обмена (посредством вызова диалога PasteSpecialDIg). Общим является то, что во всех трех способах формируется поначалу определенная структура данных (типа BOLEInitInfo). Она является "визитной кар точкой" сервера OLE и его данных. Как только значение указателя на нее присваивается свойству контейнера property PInitInfo: Pointer; происходит процесс внедрения или связывания объекта. При этом может произойти активизация сервера. Несколько примеров использования этого свойства рассмотрено ниже. Сразу после присвоения значения свойству контейнера PInitInfo потребность в созданной структуре отпадает. Ее можно уничтожить при помощи процедуры: procedure ReleaseOLEInitInfо(PInitInfo: Pointer); Контейнер, однако, продолжает хранить содержащуюся в этой структуре информацию. Для доступа к ней нужно воспользоваться свойством: property Initlnfo: BOLEInitInfo; Тип BOLEInitInfo не документирован Borland и его описание здесь не приводится. Ниже будут подробнее рассмотрены все три варианта загрузки объекта OLE в контейнер. |