1

如何将一个过程中的局部变量发送/传递给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;
4

1 回答 1

6

我想将一个或多个已经有价值的局部变量(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;
于 2013-05-04T12:06:04.113 回答