在 button 中 调用一个 edit 的 keypress事件 如果写声 edit1keypress(edit1,#13) 提示参数不一致
但如果写成
var
key :Char;
begin
key := #13;
edit1keypress(edit1,key);
end;
就可以了,是什么原因?
但如果写成
var
key :Char;
begin
key := #13;
edit1keypress(edit1,key);
end;
就可以了,是什么原因?
procedure aa ( const aa:string); aa('aa') 和
var
bb :string;
begin
bb := 'aa';
aa(bb);
end
都可以这么做
如你的例子中过程中的key变量共享主程序中key变量的地址,所以调用时参数应是变量,而不能是常数。
简单说,过程内部对key变量值的改变会改变调用处的变量值,所以调用处显然应是变量。
如你在procedure Edit1KeyPress中写key:=#32,
主程序
var
key :Char;
begin
key := #13;
edit1keypress(edit1,key);
此时输出key看,key的值变成了#32
end;