如何在运行时创建可视组件并在单元中为其分配事件。
我尝试使用以下代码,但显示
方法指针和常规程序
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;
答案 0 :(得分:3)
您必须将自己的事件声明为项目中的表单类或其他类(在私有区域或公共区域中)(
)PUB-SUB
然后您可以将WebBrowser事件分配给新的
private
{ Private declarations }
procedure DocCopmlete(ASender: TObject; const pDisp: IDispatch; const URL: OleVariant);
public
所以你可以使用一个类而不是像你这样的单位(单位uName)