Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Delphi 7中,将局部变量从一个过程发送/传递到另一个过程?_Delphi_Delphi 7_Local Variables - Fatal编程技术网

在Delphi 7中,将局部变量从一个过程发送/传递到另一个过程?

在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

如何在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
  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;

这毫无意义。如果希望代码从另一个使用局部变量,它们将不再适合本地定义。回来!这毫无意义。如果希望代码从另一个使用局部变量,它们将不再适合本地定义。回来!