2009-09-11 4 views
6

Eh bien ce genre de question n00b mais je ne peux toujours pas le comprendre. J'ai l'unité main avec la procédure Discard() dedans. Maintenant, j'ai une autre unité engine et je veux courir à partir de la procédure Discard() de l'unité main. J'ai principal dans la section uses de engine.pas. J'ai essayé d'appeler la procédure avec main.Discard() mais pas bon. Qu'est-ce que je fais mal?Comment exécuter la procédure d'une autre unité?

Répondre

5

Vous devez mettre, comme dans votre interface de signature de la procédure si:

unit main; 

interface 

procedure Discard(); 

implementation 

procedure Discard(); 
begin 
//do whatever 
end; 

D'autres unités ne peuvent « voir » ce qui est répertorié dans la section d'interface.

5

Dans l'unité "principal", vous déclarez Jeter dans la section "interface": section


unit Main; 

interface 

uses ... 

procedure Discard (...); // only the declaration, not the entire procedure 

implementation 

... // code 

maintenant dans l'unité "Engine" vous ajoutez "Main" à "utilise".

uses Main, ...

Thats it, vous pouvez appeler Discard(...) maintenant. S'il y en a plus d'un Discard(), vous pouvez appeler explicitement ceDiscard() en utilisant Main.Discard().

+0

Merci, les gars! Fonctionne bien maintenant. – Vlad

Questions connexes