定义了一个过程 procedure aa(s:String,var s1:string,var s2:string);
其中s为edit1.text内的内容,通过过程计算将值写入s1,s2中。
  调用过程aa(edit1.text,edit2.text,edit3.text);
在edit2和edit3中显示出s1和s2的值。
编译不能通过,说edit2.text和s1的类型不同。
  请问如何解决,谢谢!!

解决方案 »

  1.   

    过程 procedure aa(s:String,var s1:string,var s2:string);
    改为:过程 procedure aa(s:String,s1:string,s2:string);如果不改的话,应该这样调用:
    a2:=edit2.text;
    a3:=edit3.text;   
    aa(edit1.text,a2,a3);
      

  2.   

    在过程中我是这样写的
    s1:=substring(s,3,1);
    现在我想将edit2.text中显示中s1的值,为何不能编译?
      

  3.   

    只传一个参数,这样不更好么
    procedure aa(s:String);
    begin
     ……
      edit2.text:=
      edit3.text:= ……
    end;
      

  4.   

    过程错了
    //procedure aa(s:String,var s1:string,var s2:string);
    应该改为下面的写法:
    procedure aa(s:String;var s1,s2:string);
                        ~~
    各个变量之间要用‘;’隔开