Delphi - 创建可视组件&为其分配事件

时间:2015-07-25 09:16:34

标签: delphi

如何在运行时创建可视组件并在单元中为其分配事件。

我尝试使用以下代码,但显示

  

方法指针和常规程序

unit uName;

interface

Uses
  ....
  SHDocVw;

implementation

procedure DocComplete(ASender: TObject; const pDisp: IDispatch;
  const URL: OleVariant);
begin
  //DoSomething
end;

procedure CreateWB;
var
  wb: TWebBrowser;
Begin
  wb := TWebBrowser.Create(bgPnl);
  with wb do
  .....
  wb.OnDocumentComplete  := DocComplete; // Error line > E2009 Incompatible types
End;

1 个答案:

答案 0 :(得分:3)

您必须将自己的事件声明为项目中的表单类或其他类(在私有区域或公共区域中)(

PUB-SUB

然后您可以将WebBrowser事件分配给新的

  private
    { Private declarations }
    procedure DocCopmlete(ASender: TObject; const pDisp: IDispatch; const URL: OleVariant);
  public

所以你可以使用一个类而不是像你这样的单位(单位uName)