2009-09-11 4 views
6

Nun, diese Art von N00B Frage, aber ich kann es immer noch nicht herausfinden. Ich habe Einheit main mit Verfahren Discard() darin. Jetzt habe ich eine andere Einheit engine und ich möchte davon Discard() von Einheit main laufen lassen. Ich habe Haupt in uses Abschnitt von engine.pas. Ich habe versucht, die Prozedur mit main.Discard() aufzurufen, aber nicht gut. Was mache ich falsch?Wie wird die Prozedur von einer anderen Einheit ausgeführt?

Antwort

5

Sie müssen die Prozedur Unterschrift in Ihrer Schnittstelle setzen, etwa so:

unit main; 

interface 

procedure Discard(); 

implementation 

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

Andere Geräte können nur „sehen“, was auch immer in der Schnittstelle Abschnitt aufgeführt wird.

5

In der Einheit "Main" Sie erklären Verwerfen in der "Schnittstelle" Abschnitt:


unit Main; 

interface 

uses ... 

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

implementation 

... // code 

nun in der Einheit "Motor" Sie "Main" auf "verwendet" Abschnitt hinzufügen.

uses Main, ...

Das ist es, können Sie Discard(...) jetzt nennen. Wenn es mehr als eine Discard() gibt, können Sie explizit dieseDiscard() mit Main.Discard() aufrufen.

+0

Danke, Jungs! Funktioniert jetzt gut. – Vlad