2009-09-11 7 views
6

このようなn00bの質問はありますが、それでもわかりません。私はユニットmainと手続きDiscard()を持っています。今私は別のユニットengineを持っていて、それからユニットmainの手順Discard()を実行したいと思います。私はusesセクションのメインがengine.pasです。私はmain.Discard()で手続きを呼び出そうとしましたが、良いことはありませんでした。私は間違って何をしていますか?別のユニットからプロシージャを実行するには?

答えて

5

あなたはそうのように、あなたのインターフェイスの手順の署名を配置する必要があります。

unit main; 

interface 

procedure Discard(); 

implementation 

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

他のユニットが唯一のインタフェース部に記載されている何でも「見る」ことができます。ユニットで

5

「メイン」あなたは「インターフェース」セクションに破棄を宣言:


unit Main; 

interface 

uses ... 

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

implementation 

... // code 

今単位で「エンジン」は、あなたが「使用する」セクションに「メイン」を追加します。

uses Main, ...

これは、今すぐDiscard(...)に電話することができます。 Discard()が複数ある場合は、Discard()と明示的に呼び出すことができます(Main.Discard())。

+0

ありがとう、みんな!今でもうまくいきます。 – Vlad

関連する問題