如果这样完全正确
s:='aaa %d kkkk %s ppp';
format(s,[10,'str']);但是s是动态的,我想定义参数Params,然后将Params传入format(s, Params);
不知道Params要定义什么类型的?是Params: array of TVarRec;这类型吗?
定义后如何增加参数到Params?

解决方案 »

  1.   

    你可以察看一下DELPHI的帮助!好像不可以的,后面那个是个常量
      

  2.   

    procedure TForm1.Button1Click(Sender: TObject);
    const
      c_MyConst: array[0..2] of string = ('姓名:%s', '性别:%s', '年龄:%d');
    begin
      ShowMessage(Format(c_myconst[0], ['牛群']));
      ShowMessage(Format(c_myconst[1], ['男']));
      ShowMessage(Format(c_myconst[2], [12]));
    end;
      

  3.   

    我的意思是
    var params:不知道是什么类型(array of TVarRec)
    s:='name:%s age:%d';  //s是动态的
    增加AAA到params //不知道怎么增加
    增加18到params
    format(s, Params);结果输出为:name:AAA age:18
      

  4.   

    可以用stringlist做var stype:string;
        str:tstringlist;
    begin
      str:=tstringlist.Create;
      stype:='姓名:%d';
      str.Add(stype);
      stype:='性别:%s';
      str.Add(stype);
      stype:='年龄:%d';
      str.Add(stype);
      memo1.Lines.Add(Format(str.GetText, [0,'男',12]));
      str.free;
    end;
    要写在一行的话var stype:string;
        str:tstringlist;
    begin
      str:=tstringlist.Create;
      stype:='姓名:%d  性别:%s 年龄:%d';
      str.Add(stype);
      memo1.Lines.Add(Format(str.GetText, [0,'男',12]));
      str.free;
    end;
      

  5.   

    我将问题转换为:
    var Params: array of TVarRec;如何增加内容到params
    这样好像不行:Params[0]:=18;
    Params[1]:='Name';
      

  6.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      Str:string;
    begin
      Str:='%d';
      showmessage(format( 'SSSS'+Str,[6]));
      Str:='%s';
      showmessage(format( 'SSSS'+Str,['FFFFF']));
    end;
    想不出来什么好办法了,最好是先确定str到底是那个然后才能确定第二个参数的数值啊! Args: array of const
    关注!
      

  7.   

    帮搂主研究了一下,结果如下
    var
      p:array [0..2]of TVarRec;
      e:extended;
    begin
      p[0].VType:=0;
      p[0].VInteger:=1;
      p[1].VType:=6;
      p[1].VPChar:=pchar('1.0');
      p[2].VType:=3;e:=1.0;
      p[2].VExtended:=@e;
      caption:=format('%2d,%s,%2.1f',p);