DELPHI 如何动态加载创建ocx,并未某个事件绑定一个事件函数?

李林古 发布于 2011/06/23 17:11
阅读 2K+
收藏 0

DELPHI中动态加载创建ocx,然后为ocx中的某个事件绑定一个事件函数,如何实现?以下是我的代码,报错Not enough actual parameters

var
  demoOcx: OleVariant;
  version,systemDir:string;
begin
  try
    systemDir:=NormalDir(GetSystemDir);
    version := GetVisionInfo(systemDir+OCX_FILENAME);
    demoOcx := CreateOleObject(OCX_PLSNAME);
    demoOcx.TimerInterval := 3000;
    demoOcx.OnTimer := AppTimer;//把OnTimer事件绑定到AppTimer,此行报错
    demoOcx.TimerEnabled := True;

   except

    end;

end;

procedure TForm1.AppTimer(Sender: TObject);
begin
  ShowMessage('定时器执行');
end;

加载中
0
山东海宏
山东海宏

//注册ocx
function RegisterOCX(FileName: string): Boolean;
var OCXHand: THandle;
    RegFunc: TDLLFunction;
begin
    OCXHand := LoadLibrary(PChar(FileName));
    RegFunc := GetProcAddress(OCXHand, 'DllRegisterServer');
    if @RegFunc <> nil then
        Result := RegFunc = S_OK
    else
        Result := False;
    FreeLibrary(OCXHand);
end;
//卸载OCX
function UnRegisterOCX(FileName: string): Boolean;
var OCXHand: THandle;
    RegFunc: TDLLFunction;
begin
    OCXHand := LoadLibrary(PChar(FileName));
    RegFunc := GetProcAddress(OCXHand, 'DllUnregisterServer');
    if @RegFunc <> nil then
        Result := RegFunc = S_OK
    else
        Result := False;
    FreeLibrary(OCXHand);
end;

//调用:

FWord := CreateOleObject('Word.Application');


0
山东海宏
山东海宏

忘了:

TDLLFunction = function: HResult; stdcall;

返回顶部
顶部