12.12.2006, 22:36
общий
это ответ
Здравствуйте, Пепеляев Александр!
Поясняю.Если форма в модуле Unit1 должна управлять формой в модуле Unit2,то в оператор uses модуля Unit1 должно быть включено имя второго модуля.В свою очередь,если форма в модуле Unit2 должна пользоваться процедурами или каким-либо кодом,содержащимся в модуле Unit1,то в uses модуля Unit2 должно быть введено имя модуля Unit1.
Смотрите структуру модуля,я всё пояснил:
unit Unit1; //имя модуля
interface //открытый интерфейс модуля
{Сюда могут помещаться списки подключаемых модулей,объявления типов,констант
переменных,фунций,процедур,К КОТОРЫМ БУДЕТ ДОСТУП ИЗ ДРУГИХ МОДУЛЕЙ}
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls; //список подключаемых модулей
type //объявляются классы формы
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private //закрытый раздел класса
{ Private declarations }
{Сюда могут помещаться объявления типов,констант переменных,фунций,
процедур,К КОТОРЫМ ДОСТУП ИЗ ДРУГИХ МОДУЛЕЙ ЗАКРЫТ}
public //открытый раздел класса
{ Public declarations }
{Сюда могут помещаться объявления типов,констант переменных,фунций,
процедур,КОТОРЫЕ НЕ БЫЛИ ВКЛЮЧЕНЫ В КЛАСС ФОРМЫ}
end;
var //ОБЪЯВЛЕНИЕ ГЛОБАЛЬНЫХ ПЕРЕМЕННЫХ
Form1: TForm1;
{Сюда могут помещаться объявления типов,констант переменных,фунций,
процедур,К КОТОРЫМ ДОСТУП ИЗ ДРУГИХ МОДУЛЕЙ ЗАКРЫТ}
implementation //реализация модуля
uses Unit2; //ОБЪЯВЛЕНИЕ ССЫЛКИ НА ДРУГОЙ МОДУЛЬ
{Сюда могут помещаться списки подключаемых модулей,объявления типов,констант
переменных,фунций,процедур,не объявленных ранее,но К КОТОРЫМ НЕ БУДЕТ ДОСТУПА
ИЗ ДРУГИХ МОДУЛЕЙ}
{$R *.dfm}
{здесь помещается,собственно сам код программы,то есть процедуры,функции,
переменные,константы и т.д}
procedure TForm1.FormCreate(Sender: TObject);
begin
TForm2.Create(Application);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Form2.Show;
Form2.Color:=clRed;
end;
end. //Завершение работы всего модуля
Следует так же заметить и это ВАЖНО!!!
Если вы используете циклические ссылки с помощью предложения uses, ни в коем случае нельзя их размещать в разделах interface!!!
Для первого модуля
unit Unit1
...
interface
uses ... Unit2
implementation
...
Для второго модуля
unit Unit2
...
interface
uses ... Unit1
implementation
При этом компилятор выдаст вам ошибку!
Правильно будет так:
Для первого модуля
unit Unit1
...
interface
implementation
uses ... Unit2
...
Для второго модуля
unit Unit1
...
interface
implementation
uses ... Unit2
...
Надеюсь,теперь вам стало ясно,куда помещать свои переменные.
Удачи!!