在Delphi 7中,将局部变量从一个过程发送/传递到另一个过程?
如何在delphi中将一个过程中的局部变量发送/传递给另一个过程在Delphi 7中,将局部变量从一个过程发送/传递到另一个过程?,delphi,delphi-7,local-variables,Delphi,Delphi 7,Local Variables,如何在delphi中将一个过程中的局部变量发送/传递给另一个过程 procedure TForm1.Button1Click(Sender: TObject); var a,b:integer; c: array [o..3] smallint; begin a:=1; b:=2; end; 我想将一个或多个已经有值的本地变量A、b、c发送到另一个过程,以便在那里使用它们,如: procedure TForm1.Button2Click(Sender: TObject); var
procedure TForm1.Button1Click(Sender: TObject);
var
a,b:integer;
c: array [o..3] smallint;
begin
a:=1;
b:=2;
end;
我想将一个或多个已经有值的本地变量A、b、c发送到另一个过程,以便在那里使用它们,如:
procedure TForm1.Button2Click(Sender: TObject);
var
d:integer;
begin
d:=a*b;
end;
我想将一个或多个已经有值的本地变量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;
我想将一个或多个已经有值的本地变量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;
这毫无意义。如果希望代码从另一个使用局部变量,它们将不再适合本地定义。回来!这毫无意义。如果希望代码从另一个使用局部变量,它们将不再适合本地定义。回来!