Cóż, ten rodzaj pytania n00b, ale nadal nie mogę tego rozgryźć. Mam jednostkę main
z procedurą Discard()
w tym. Teraz mam inną jednostkę engine
i chcę uruchomić z niej procedurę Discard()
jednostki main
. Mam główne w sekcji uses
z engine.pas
. Próbowałem wywołać procedurę z main.Discard()
, ale nic dobrego. Co ja robię źle?Jak uruchomić procedurę z innego urządzenia?
6
A
Odpowiedz
5
Musisz umieścić podpis procedura w interfejsie, tak:
unit main;
interface
procedure Discard();
implementation
procedure Discard();
begin
//do whatever
end;
Inne jednostki „widzi” tylko to co jest wymienione w sekcji interfejsu.
5
W jednostce „Main” zadeklarować Odrzuć w sekcji „interface”:
unit Main;
interface
uses ...
procedure Discard (...); // only the declaration, not the entire procedure
implementation
... // code
Teraz w jednostce „Engine” dodać „main” w sekcji „korzysta”.
uses Main, ...
To wszystko można nazwać Discard(...)
teraz. Jeśli jest więcej niż jeden Discard()
, możesz jednoznacznie wywołać tenDiscard()
za pomocą Main.Discard()
.
Dzięki, chłopaki! Działa teraz dobrze. – Vlad