ActiveForm上控件怎么了(懂的人一看就明白)?(200分)

  • 主题发起人 主题发起人 PLS.Wang
  • 开始时间 开始时间
P

PLS.Wang

Unregistered / Unconfirmed
GUEST, unregistred user!
我写了一个控件,在Application时,在Form上可以使用,但是在ActivxForm上却提示我
"Invalid class typecast",怎么搞的???
是不是在我的类里面使用了ActiveX不识别的类,怎么改呢?
大家帮帮忙啊,我在线等待......
 
自已UP......
Help!Help!Help!
 
我知道原因了:
constructor TSXXX.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
with AOwner as TForm do TSXXXMainWnd := Handle

end;
在ActiveFormX中,TForm是非法的,但我不知该如何去取主窗体的句柄......请高手指教.
 
用self试试呢
 
"self"代替哪个? "AOwner"还是"Tform"?
不行......
"AOwner"是TComponent在Application中可以作为TForm处理,来得到主窗体句柄(TSXXX的父亲句柄),但在ActiveX中是不可能的作为TForm来得到句柄的.如果改成Self的话,那么就成了自已的句柄,而且在我的控件中没有句柄属性.
目的:通过AOwner(TSXXX的父亲),来得到它的Handle.
想法:通过TComponent中的Interface来定位......
 
with AOwner as TForm do TSXXXMainWnd := Handle

错误的意思是AOwner as TForm
你主要是想干什么?
 
使用API试试,
父窗口句柄:=GetParent(Self.Handle)
 
xingzhou,
很佩服你 可以交交我么
 
在打开子窗口的可以传递下来,constructor create 重载一下。把需要的参数都带进去!
 
不好意思!问题早已解决,但好久没上DFW,不过还是谢谢各位了,现在散分吧
 
多人接受答案了。
 
后退
顶部