delphi
 var Engines,Nodes,Node,Field: Variant;  //定义节点和域变量。
    i:integer;                  //控制循环的变量,给装配体赋值。
begin   Nodes:= Engine.RootNodes;  //当点击一个零件时上一个零件的颜色消失,获取节点集。
BCB
Variant Engine, Nodes,Node,Field;  //定义节点和域变量。
    int i;                  //控制循环的变量,给装配体赋值。
    int j;
    Nodes=Engine->RootNodes;
请教下 delphi运行正常 ,而在BCB里却报错,这是什么原因?是不是Variant的问题呢?

解决方案 »

  1.   

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

  2.   

    嗯嗯 ,你说的很对,但我改一下,却提示 RootNodes is not  a member of variant.
    是不是Delphi中的Variant 在BCB中会被一种新的数据类型取代呢?