variant 问题

[复制链接]
查看11 | 回复2 | 2021-1-27 06:03:44 | 显示全部楼层 |阅读模式
delphi
varEngines,Nodes,Node,Field:Variant;//定义节点和域变量。
i:integer;//控制循环的变量,给装配体赋值。
begin
Nodes:=Engine.RootNodes;//当点击一个零件时上一个零件的颜色消失,获取节点集。

BCB
VariantEngine,Nodes,Node,Field;//定义节点和域变量。
inti;//控制循环的变量,给装配体赋值。
intj;
Nodes=Engine->RootNodes;
请教下delphi运行正常,而在BCB里却报错,这是什么原因?是不是Variant的问题呢?
分 -->
回复

使用道具 举报

千问 | 2021-1-27 06:03:44 | 显示全部楼层
Delphi中的"."并不完全与BCB中的"->"相等。
前者的编译器更强大一些,所以可以作为变体内部成员的访问写法。
但BCB因为要兼容C++语法,"->"操作符的左边必须是一个指针。右边是指针对象的成员。
(也就是说,左边那个变量名,声明时都是Form*这样的,具体看C++语法)
很明显,Variant变量不是指针,所以“->”操作符肯定不符合语法。
你需要查看BCB中关于Variant类型的操作语法指南。。。我就N年没写BCB了~
回复

使用道具 举报

千问 | 2021-1-27 06:03:44 | 显示全部楼层
嗯嗯,你说的很对,但我改一下,却提示RootNodesisnotamemberofvariant.
是不是Delphi中的Variant在BCB中会被一种新的数据类型取代呢?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行