Como executar procedimento de outra unidade?
-
05-07-2019 - |
Pergunta
Bem, este tipo de pergunta n00b, mas eu ainda não consigo descobrir isso. Eu tenho main
unidade com procedimento Discard()
nele. Agora eu tenho uma outra engine
unidade e quero fugir dela procedimento Discard()
da unidade main
. Tenho principal na seção uses
de engine.pas
. Tentei ligar procedimento com main.Discard()
mas não é bom. O que estou fazendo de errado?
Solução
Você precisa colocar a assinatura do procedimento na sua interface, assim:
unit main;
interface
procedure Discard();
implementation
procedure Discard();
begin
//do whatever
end;
Outras unidades podem apenas "ver" o que está listado na seção de interface.
Outras dicas
Na unidade "Main" você declarar Descartar na seção "interface":
unit Main;
interface
uses ...
procedure Discard (...); // only the declaration, not the entire procedure
implementation
... // code
Agora, na unidade de "Motor" de adicionar "Principal" para a seção "usos".
uses Main, ...
É isso, você pode chamar Discard(...)
agora. Se houver mais de um Discard()
você pode explicitamente chamar este Discard()
usando Main.Discard()
.