(Я предполагаю, что каждая форма находится в своем собственном блоке.) Во-первых, вы должны убедиться, что idList
доступен для других блоков.Например,
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 = class(TForm)
private
{ Private declarations }
idList: integer;
public
{ Public declarations }
end;
не подойдет, но
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
idList: integer;
end;
в порядке.В этом случае все, что вам нужно сделать в Unit2
, это добавить Unit1
в его «список использований» (нажмите Alt + F11 или используйте File / «Use Unit ...», находясь в Unit2
или покаредактирование Form2
).Затем вы можете использовать Form1.idList
для доступа к переменной в любом месте Unit2
.(Form1
- это глобальная переменная экземпляра TForm1
в Unit1
).
Например,
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm2 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
uses Unit1; // <-- Add manually, or press Alt+F11 (or use File/'Use Unit...')
{$R *.dfm}
procedure TForm2.Button1Click(Sender: TObject);
begin
ShowMessage(IntToStr(Form1.idList));
end;
end.