我现在定义了record
   TDSLAMQueryInfoRecord =Record
        OPTION:String;
        RESULT:String;
        LAM_IP_ADDR:String;
        DSLAM_STATE:String;
DSLAM_NODE_NAME:String;
PORT_STATE:String;
PORT_IS_SYNC:String;
  end
我知道各个字段的名字(字符串的).我想用一个循环给TDSLAMQueryInfoRecord 的各个字段赋值

解决方案 »

  1.   

    var
      dqi: TDSLAMQueryInfoRecord ;dqi.OPTION := 'sadfdsafdsf';
    不行吗?不太明白你的意思
      

  2.   

    不是的.
    现在是
      aaa:String;
      aaa:='OPTION ';
    我想dqi.aaa:='sadfdsafdsf'; 但是不行的.
    我想找一种方法.因为TDSLAMQueryInfoRecord 里面的字段很多.我不想一个一个去写.想用个循环进行赋值.就象TOBject里边的FieldAddress(aaa)方法根据字段的字符串名就能得到字段的指针
      

  3.   

    我的字段都在XML里面存放着.因此我可以循环从XML里面得到字段名字.
      

  4.   

    就象TOBject里边的FieldAddress(aaa)方法根据字段的字符串名就能得到字段的指针
    ///////////////////////////////////////////////////////////////那里说的这个方法不行吗?
      

  5.   

    可是record不是从TObject继承下来的.不能用TOBject的方法.
      

  6.   

    真的不行吗?!呜...我那个record里面有40多个字段的.
      

  7.   

    就象TOBject里边的FieldAddress(aaa)方法根据字段的字符串名就能得到字段的指针
    ////////////////
    Record好像不行的,OPTION在这里就是一个变量,而'OPTION'是一个字符串变量的值,虽然从字面上看差别很小,但是编译器处理他们的时候其实差别是很大的,而且,定义Record的时候最好不要定义string类型的数据,因为他的长度是不固定的,使用起来会有不可预料的问题出现,你可以用array[0..length] of char来代替。