|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 您现在的位置 >首页>IT技术社区>软件应用>正文 |
| [DELPHI]创建窗口时出现GetDynaMethod错误 |
|
|
某个子窗口不是通过create(aowner)创建,而是通过另一个公共方法 procedure TFrm_EmpSelect.SelectEmp(FList:Tlist); begin List:=Flist; with TFrm_EmpSelect.Create(self) do begin try Showmodal; finally Free; end; end; end; 来调用,主要是传递了一个参数FList。 但是出现了错误,跟踪后发现是调用TCustomForm.create -> ...-> TComponent.Create 时在函数GetDynaMethod的下面这段发生错误 @@haveVMT: MOV EDI,[EBX].vmtDynamicTable ;EDI是DMT的入口
当时以为是否selectEmp函数不是类(static)函数的关系,于是改成类函数,编译通不过,修改了一下,通过了,运行后就正常了。
但是我又发现另外一个单元Login.pas里面的login函数也是同样用法,也不是类函数(为什么不是构造函数,又不是类函数,但能够不实例化就调用, 这个问题还有待研究)。 可见改成类函数不是问题解决的关键。 回想到改成类函数时编译错误发生在这行: with TFrm_EmpSelect.Create(self) do 这里self不是一个类实例,而是一个类引用, 于是改成Frm_Client(主窗体), 看样子问题就在这里了。
在外面调用TFrm_EmpSelect.Create(self),这个self表示外面的宿主;而在本类中调用,self是本类, 估计就是这个原因。 责任编辑:admin |
| 上一篇:[。NET]ASP.NET AJAX中的非同步PageMethod调用 |
| 下一篇:[JAVA]教你如何保护Java字节码不被反编译 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 友情链接 |
甘肃IT在线热忱欢迎各类网站友情链接,首页链接要求:PR>=4,PR低的我们将全部调整至内页,还望见谅,谢谢合作! |
|
|
|
|
|
|
|