关于类型转换的问题,急急急!!!!!!!!!!!!!!(200分)

  • 主题发起人 主题发起人 Iversonqiu03
  • 开始时间 开始时间
I

Iversonqiu03

Unregistered / Unconfirmed
GUEST, unregistred user!
在COM中使用以下,老提示出错“Invalid class typecast”
p_CtlOBJ := TCustomAction(G_SendObjWnd);//正常 G_SendObjWnd 是从主程序传进来的SYSINT类型的值
Self.Caption := p_CtlOBJ.Caption;
//正常

p_CtlOBJ.Caption := 'abc';
//错误出现

请高手指教,小弟有急用,在线等,谢了,如分不够可以再加…… 拜托拜托……
 
拜托,给点有意义的吧,无聊的就没来了,真的很急啊
 
不要直接引用对象属性作参数
弄个临时变量string类型作为传递参数吧
好像遇到过一次,但是不是Com里,没在意当时
var
str: string;
begin

str := 'abc';
p_CtlOBJ.Caption := str;
Self.Caption := str;
//或者p_CtlOBJ.Caption
 
不行啊,还是照旧…… 还有哪位高手请指教一下……
最好是在COM中可以实现的
 
没看清,你是这个"Invalid class typecast"
你在强制类型转换的问题
检查你的三个类p_CtlOBJ, G_SendObjWnd, self
合不合乎向上转型(基类没有的派生类的实现方法被访问..),
或者向下转型(把派生类的方法当基类给访问了...)主要这两个了
因为看不到代码,只能给这些提示了
 
p_CtlOBJ := TCustomAction(G_SendObjWnd);//正常 G_SendObjWnd 是从主程序传进来的SYSINT类型的值(TACTION的对象)
//p_CtlOBJ 是TCustomAction的类实例
Self.Caption := p_CtlOBJ.Caption;
//正常

p_CtlOBJ.Caption := 'abc';
//错误出现

请高手指教,小弟有急用,在线等,谢了,如分不够可以再加…… 拜托拜托……

另外,使用TButton的实例可以成功实现功能;
 
?????,高手们,帮帮忙吧!!!!
小弟真的有急用
 
p_CtlOBJ.Caption := pchar('abc');
 
应该跟这个没任何关系吧,不行啊!!!!!!!!!!!
 
没了吗?哪位高手帮帮忙吧,真的非常紧急啊~~~~~
 
试一下这个会不会出错??
p_CtlOBJ := TCustomAction(G_SendObjWnd);
p_CtlOBJ.Caption := 'abc';

如果出错了,那就说明了,你上面的转型没有成功的
 
如果G_SendObjWnd是地址,那么最好用这样转
PTCustomAction让 := ^TCustomAction;
p_CtlOBJ := PTCustomAction(G_SendObjWnd)^;
 
Delphi技术联盟群:23889386
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
743
import
I
后退
顶部