【发布时间】:2011-08-12 02:07:38
【问题描述】:
假设我在一个 delphi 项目中有两个表单,我希望能够从 form2 访问 form1 的变量。有没有人可以在 form1 中声明一个可以从所有表单中读取的“公共”变量?
我尝试在公共声明中放置一个变量
{ private declarations }
public
{ public declarations }
test: integer;
end;
在表格 2 中我有
unit Unit2;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, unit1;
type
{ TForm2 }
TForm2 = class(TForm)
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
procedure FormCreate(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.lfm}
{ TForm2 }
procedure TForm2.FormCreate(Sender: TObject);
begin
form1 //<---------- DOES NOT GET RECOGNIZED
end;
end.
然后我将“Unit1”放入 Form2 的使用部分,但由于循环引用,我似乎无法这样做。如果可能的话,我想避免使用指针。
【问题讨论】:
-
您需要考虑为什么需要这些全局变量,以及是否可以不使用它们。通常您希望尽量减少公共全局变量的数量,因为它们对“错误”提供的保护很少(例如,因为它们是公共的并且可以读写,所以任何东西都可以覆盖它们)。
标签: delphi