Ссылка , предоставленная Синди , действительно дала ответ с некоторыми изменениями.Большое спасибо.Тем не менее, ссылка относится к форме активировать и деактивировать.Если приложение ole находится в вашем главном окне, оно должно обрабатываться в событиях приложения.Если не в главном окне, то вам нужно это в formActivate
и т. Д., Но formActivate
вторичной формы не сработает на application.activate
, поэтому потребуется также иметь код в событиях приложения, который вызовет formActivate
вторичная форма.Следующее работает для ole в основной форме и в приложении onActivate
var
iO: IOleInPlaceActiveObject;
begin
if not VarIsClear(App) then begin
if Supports(OleContainer1.OleObject, IOleInPlaceActiveObject, io) then
IO.OnFrameWindowActivate(true);
end;
То же самое в приложении deactivate
, но передают false
в качестве параметра для onFrameWindowActvate