想从delphi 的一段代码转化为vb格式,但是出错了,提示:缺少:语句结束。
才刚接触vb,不知道哪里出错了,高手帮忙看一下.
 
delphi 代码:
procedure TForm1.ButtonAddClick(Sender: TObject);//这段是按钮双击代码
var Node, ChildrenNodesField: Variant;
    NewNode: Variant;
    Count: integer;
    NewStr: WideString;
begin
  Randomize;
  Node:= Engine.Nodes.Item['GroupNode'];
  ChildrenNodesField:= Node.Fields.Item['children'];
  Count:= ChildrenNodesField.Count;
  NewStr:= 'Transform { translation '+IntToStr(2*Count)+ ' 0 0 '+
              'children Shape {appearance Appearance { material Material { diffuseColor '+
              '0.' + IntToStr(random(999))+ ' 0.'+IntToStr(random(999)) + ' 0.'+
              IntToStr(random(999))+ ' }} geometry Box { size 1 1 1 } }}';
  NewNode:= Engine.CreateNodeFromString(NewStr);
  ChildrenNodesField.Add(NewNode);
end;我转化为vb:
Private Sub Command2_Click()
Dim Node As Variant
Dim ChildrenNodesField As Variant
Dim NewNode As Variant
Dim Cout As Integer
Dim NewStr As String
 Set Node = Engine.Nodes.Item['GroupNode']//这里出错
 Set ChildrenNodesField = Node.Fields.Item['children']//这里出错
 Count = ChildrenNodesField.Count
 NewStr= "Transform { translation '+IntToStr(2*Count)+ ' 0 0 '\n"+
             + "children Shape {appearance Appearance { material Material { diffuseColor "1 1 0" }}\n"+
             +"geometry Box { size 1 1 1 } }}"  //这里出错
 NewNode = Engine.CreateNodeFromString(NewStr)
 ChildrenNodesField.Add (NewNode)End Sub 我把他改成这样了,出错了,大侠帮忙改指正一下,非常感激!

解决方案 »

  1.   

    我只改了语法错误----仅些而已
    Private Sub Command2_Click()
    Dim Node As VariantDim ChildrenNodesField As Variant
    Dim NewNode As Variant
    Dim Cout As Integer
    Dim NewStr As String
    Set Node = Engine.Nodes.Item(3)    'Nodes.Item['GroupNode']//这里出错
    Set ChildrenNodesField = Node.Fields.Item(2) '['children']//这里出错
    Count = ChildrenNodesField.Count
    NewStr = "Transform { translation '+IntToStr(2*Count)+ ' 0 0 '\n" + _
                 "children Shape {appearance Appearance { material Material { diffuseColor" + "1 1 0" + "}}\n" + _
                "geometry Box { size 1 1 1 } }}" ' //这里出错
    NewNode = Engine.CreateNodeFromString(NewStr)
    ChildrenNodesField.Add (NewNode)End Sub
      

  2.   

     Node:= Engine.Nodes.Item['GroupNode']; 
      ChildrenNodesField:= Node.Fields.Item['children']; Set Node = Engine.Nodes.Item(3)   Engine.Nodes.Item['GroupNode'];   
                            Item(3) ==             Item['GroupNode']; 这二者能等同吗
      

  3.   

    不能确定是不是以下原因,只作参考
    Set Node = Engine.Nodes.Item['GroupNode']//这里出错  ----  索引名称用双引号,Set Node = Engine.Nodes.Item["GroupNode"]
    Set ChildrenNodesField = Node.Fields.Item['children']//这里出错 ----  与第一句相同
    Count = ChildrenNodesField.Count 
    NewStr= "Transform { translation '+IntToStr(2*Count)+ ' 0 0 '\n"+ 
                + "children Shape {appearance Appearance { material Material { diffuseColor "1 1 0" }}\n"+ 
                +"geometry Box { size 1 1 1 } }}"  //这里出错  ---- "IntToStr"这个函数不明白,看是不是这个的问题?