2009-09-11 16 views
6

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?

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().

+0

Dzięki, chłopaki! Działa teraz dobrze. – Vlad

Powiązane problemy