Waw*_*hun 1 delphi local-variables delphi-7
如何将过程中的局部变量发送/传递给delphi中的另一个过程?
procedure TForm1.Button1Click(Sender: TObject);
var
a,b:integer;
c: array [o..3] smallint;
begin
a:=1;
b:=2;
end;
Run Code Online (Sandbox Code Playgroud)
我想将一个或多个已经有值的局部变量(a,b,c)发送到另一个过程,以便在那里使用它们:
procedure TForm1.Button2Click(Sender: TObject);
var
d:integer;
begin
d:=a*b;
end;
Run Code Online (Sandbox Code Playgroud)
我想将一个或多个已经有值的局部变量(a,b,c)发送到另一个过程以在那里使用它们.
这表明对局部变量的生命周期存在误解.局部变量仅具有拥有它们的函数的持续时间的范围.由于您的两个事件处理程序具有不相交的生命周期,因此它们的局部变量永远不会同时存在.
所以,当你说"已经有价值"时,你就错了.Button1Click正在执行时存在的局部变量在执行时不存在Button2Click.
您需要将变量作为类的成员而不是局部变量.这样,变量的生命周期就会跨越事件处理程序的单独执行.
type
TForm1 = class(TForm)
....
private
a,b:integer;
// etc.
end;
....
procedure TForm1.Button1Click(Sender: TObject);
begin
a:=1;
b:=2;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
d:integer;
begin
d:=a*b;
end;
Run Code Online (Sandbox Code Playgroud)