想把一个给定的不定类型变量变成TVarrec,
但由于TVarRec使用的是指针,除integer外要自己进行内存管理,
繁琐而且容易出错
delphi有没有系统函数或操作之类的直接把一个变量变成TVarrec记录?
最好是生存期自管理的
又或者哪位能给个安全点的给TVarrec赋值一个字符串的例子,我试过直接赋值,赋值指针,申请内存等方式,最后不是不能编译,就是运行结果正常但最后会出现内存读写错误

解决方案 »

  1.   

    自己写的一个赋值指针的过程
    var
      data: TVarRec;
      str: String;
    begin
      str := 'test;;
      //addRef(str);//自己写的一个增加计数的函数,不能编译,不加这行,编译通过,结果正常但最后读内存错
      data.VAnsiString := pointer(str);
    end;
      

  2.   

    呵呵,看看DB单元的TField的AssignValue方法吧
    但我试了套用其中的代码编译出错,推荐用汇编,要么用TVarRec数组传给Format去处理
      

  3.   

    变量转TVarRec很容易,TVarRec转基本类型才是重要的!!
    声明一个函数:Func1(s: String; ArrA: Array of Const)然后函数体内ArrA参数的数组成员就是TVarRec了建议将TVarRec传入Format函数去处理
      

  4.   

    编译器把常量数组中所有的元素隐式转换为TVarRec类型。
    顶三楼!