注册 登录
编程论坛 Delphi论坛

关于过程中引用参数的问题

xu2000 发布于 2006-04-14 18:47, 691 次点击

假设有如下代码
procedure TForm1.FormCreate(Sender: TObject);
begin
a(edit1.text);
end;
procedure a(var s:string);
begin
s:='ll';
end;
运行时编译出错。
有人能告诉我这是为什么吗?应该怎么解决?

4 回复
#2
ensr20062006-04-16 16:44
能再多粘贴一点代码吗??
#3
ysp_19842006-04-16 17:50
一看就不对.
var去了.a前加Tform1.如:
procedure Tform1.a(s:string);
begin
s:='ll' 这一句不知你干什么.;
end;
edit1.text是你的过程的实参.s就和edit1.text的值是一样的.
不知你又给s赋值为'11'干么?

[此贴子已经被作者于2006-4-16 17:52:00编辑过]

#4
xu20002006-04-17 15:51
看来大家是没明白我的问题,我是说假如我做了一个函数
function xx(s:string; var s1:string):string;
....
然后我向这个函数传递参数,
xx(stringgrid1.cells[1,1],stringgrid1.cells[1,1]);
为什么第一个参数可以传递,而第二个不可以?
#5
ysp_19842006-04-17 16:35
第二个参数是变量参数.你去看看变量参数的用法就知道了.
1