找个人来看看这段程序!
procedure TForm1.x(out i: integer; out s: string);
begin
i:=i*2;
s:=s+'abc';
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
s:string;
begin
i:=3;
s:='xxx';
x(i,s);
showmessage(s);
end;
为什么s传过去就是空了呢,最后的结果是abc,而不是xxxabc
[解决办法]
在delphi里, out型参数都会在函数内部做初始化, 比如字符串就会自动初始化为空字符串, 如果你想把参数要传入又要传出, 你应该用var而不是out, out代表的是这个参数仅供传出.