200分?够不够?一个Delphi开发的ActiveX由PB调用时吃产生的问题(200分)

  • 主题发起人 主题发起人 vickymade
  • 开始时间 开始时间
V

vickymade

Unregistered / Unconfirmed
GUEST, unregistred user!

1。我很着急。
2。分不够可以再加。真正解决了就行。
3。感觉大富翁越来越次了。



我做了一个ActiveX,Delphi调用时,一切正常。但是给PB调用的时候就出问题了,功能也能够使用,但是PB的窗口关闭的时候就会出现内存错误,然后连PB一起就给关闭了。后来我就找啊找,找啊找,找到花儿也谢了,终于找到了问题,但是…………呜呜哇哇…………我怎么也向不明白为啥出现这样的错误。

首先,我不明白的是,为什么Delphi调用正常,而PB调用却不正常。其次,我在排除错误的时候发现了这样一个问题,那就是,看下面代码

procedure TXXXXActiveXTest.InitializeControl;
begin
Try
FDelphiControl := (Control as TButton);
Except
ShowMessage('Control as TButton is Wrong');
End;
FDelphiControl.OnClick := ClickEvent;
end;

当FDelphiControl := (Control as TButton);这一句,被主销掉的时候,PB调用就不出错了,但是这样的话,NND这个ActiveX也不能用啊。但是加上就出错。还有,我试了试如果加上这句话,当你在PB地下不去调用这个ActiveX的方法或属性的时候,就不会出错,而调用了就出错,更气人的是你可以响应这个ActiveX的事件,只响应时间的时候就没有错误。我靠,这不是强盗逻辑吗?为什么呀为什么。

还有,我在找问题的时候为自己在添加了几个过程,但是TMD调用的时候只要是inherited了TActiveXControl的方法,PB立马消失,比枪顶着都快。


各位朋友们,各位同志们,各位同胞们,看在我们都是人类的份上,帮帮忙吧。

呜呜哇哇。不会让我连年都过不好吧。

谢谢了啊。[做范伟状]
 
看不到你的 Control 声明.
FDelphiControl := (Control as TButton);
改写成
FDelphiControl := TButton(Control);
试试
 


不行。我早试了。这两个是一样的意思,都是强制类型转换。
 
后退
顶部