关于TObject的强制类型转换,谢谢了

bmbmbm123delphi 2009-03-20 09:02:57
我写了个程序,要用Tstring的objec关联功能,我之前自己定义了一个纪录类型TFileBody,现在我要把它与string中的内容进行关联,那就要先把其转换成object类型,所以我就用TObject(myFileBody)转换,但是出错,提示这是非法转换。。。郁闷中。。。哪位高人可以帮帮我?谢谢!
...全文
321 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
chys3584 2009-03-21
  • 打赏
  • 举报
回复
我觉的所谓的关联只是TStringList记住了对象的指针(其实是对象所在的地址)而已。
bmbmbm123delphi 2009-03-21
  • 打赏
  • 举报
回复
那按照各位大哥的说法那其实关联进去的应该是一个指针类型了,那取出的时候也应该再强制转换成纪录指针类型了?谢谢各位!
zhoufs 2009-03-21
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 bmbmbm123delphi 的回复:]
不好意思,我表述有些问题,我要用的是Tstringlist的objec关联功能,而且TFileBody是在通信协议中定好的,里面没有设置指针,我用其它数据类型转换成Tobject时都通过,就是协议里定的这个纪录类型通不过,我该怎么办呢?做毕业设计急啊。。。谢谢!
[/Quote]

其实liangpei2008已经说得很明白了,你自己没有理解liangpei2008的意思。

liangpei2008的例子正确,应该这样做。Delphi中任何对象(TObject)其实都是一个指针,只有指针才能转换为
TObject。
ahjoe 2009-03-21
  • 打赏
  • 举报
回复
使用指向记录类型的指针。
chys3584 2009-03-21
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 bmbmbm123delphi 的回复:]
不好意思,我表述有些问题,我要用的是Tstringlist的objec关联功能,而且TFileBody是在通信协议中定好的,里面没有设置指针,我用其它数据类型转换成Tobject时都通过,就是协议里定的这个纪录类型通不过,我该怎么办呢?做毕业设计急啊。。。谢谢!
[/Quote]

里面没有指针你可以在外面定义嘛。呵呵
HsWong 2009-03-21
  • 打赏
  • 举报
回复
liangpei2008说得对,需要用指针的
bmbmbm123delphi 2009-03-21
  • 打赏
  • 举报
回复
不好意思,我表述有些问题,我要用的是Tstringlist的objec关联功能,而且TFileBody是在通信协议中定好的,里面没有设置指针,我用其它数据类型转换成Tobject时都通过,就是协议里定的这个纪录类型通不过,我该怎么办呢?做毕业设计急啊。。。谢谢!
liangpei2008 2009-03-20
  • 打赏
  • 举报
回复

type
PFileBody=^TFileBody;
TFileBody=record
Name:string;
end;
var
Test:TStrings;
A: PFileBody;
begin
Test:=TStringList.Create;
New(A);
A.Name := 'TestData';
Test.AddObject('1',TObject(A));
end;

5,927

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧