Delphi - Creating a visual component & assigning event to it
本问题已经有最佳答案,请猛点这里访问。
我如何在运行时创建可视组件并将事件分配给一个单元。
我尝试使用以下代码,但是它显示了
method pointer and regular procedure
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | 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 2 3 4 | private { Private declarations } procedure DocCopmlete(ASender: TObject; const pDisp: IDispatch; const URL: OleVariant); public |
然后您可以将WebBrowser事件分配给新事件。
1 | wb.OnDocumentComplete := yourClass.DocCopmlete; |
因此您可以使用类而不是像您这样的单元(单元uName)