Учебник по Delphi

Дополнительные сведения о процедурах и функциях.

   Когда вы пытаетесь обратиться к процедуре, находящейся в другом модуле, но специально не объявляли его вручную, Delphi обязательно задаст вопрос: «Form 'FormГ references form 'Form2' declared in unit 'Unit2' which is not in your USES list. Do you wish to add it?». В ответ на него нужно нажать кнопку Yes и запустить программу на выполнение снова. Если вы нажали Yes, то Delphi автоматически объявит форму, к которой происходит обращение, и больше этот вопрос задавать не будет.

   Разумеется, если вы хотите вызывать процедуру, принадлежащую одной форме (модулю), из другой формы (модуля), то ее нужно объявлять в разделе public, а не private, иначе другая форма не увидит этой процедуры.

   Можно вообще не объявлять процедуру или функцию ни в private, ни в public. Это неправильно, и так лучше не делать, однако работать все равно будет (в пределах одного модуля). Единственное «но» — процедура, которую вы вызываете, должна располагаться в тексте выше места вызова, иначе Delphi не сможет ее обнаружить. Пример не объявленной нигде процедуры и ее использования приведен в листинге.

Листинг 6.8
procedure Unseen;
// процедура, которая нигде не объявлена
begin
Form"!.Capt ion : = Здесь был Ва. .. Unseen!;
end;
procedure TForml.ButtonlCI ick(Sender: TObject);
begin
Unseen;
end;

   Процедура Unseen вызывается нажатием кнопки Buttonl. Если вы запустите такой пример, то все будет выполняться. Если же необъявленную процедуру расположить в тексте программы после Buttonlciick, то она работать не будет.




 

Рейтинг@Mail.ru          Rambler's Top100

X-ZiBiT