Как запустить процедуру из другого модуля?
-
05-07-2019 - |
Вопрос
Ну, вопрос такого рода, но я до сих пор не могу понять. У меня есть блок main
с процедурой Discard ()
. Теперь у меня есть другой модуль engine
, и я хочу запустить из него процедуру Discard ()
модуля main
. У меня есть основной в разделе использует
engine.pas
. Я пытался вызвать процедуру с помощью main.Discard ()
, но безрезультатно. Что я делаю не так?
Решение
Вам необходимо поместить подпись процедуры в ваш интерфейс, например так:
unit main;
interface
procedure Discard();
implementation
procedure Discard();
begin
//do whatever
end;
Другие устройства могут только "видеть" все, что перечислено в разделе интерфейса.
Другие советы
In unit " Main " вы объявляете Discard в интерфейсе " раздел:
unit Main;
interface
uses ...
procedure Discard (...); // only the declaration, not the entire procedure
implementation
... // code
Сейчас в блоке "Двигатель" Вы добавляете " Основное " «использует» раздел. р>
uses Main, ...
Вот и все, теперь вы можете вызвать Discard (...)
. Если существует более одного Discard ()
, вы можете явно вызвать this Discard ()
с помощью Main.Discard () код>.