別のユニットから手順を実行する方法は?
-
05-07-2019 - |
質問
まあ、この種のn00bの質問ですが、私はまだ理解できません。ユニット main
にプロシージャ Discard()
が含まれています。今、別のユニット engine
があり、そこから main
のプロシージャ Discard()
を実行します。 mainは engine.pas
の uses
セクションにあります。 main.Discard()
でプロシージャを呼び出そうとしましたが、うまくいきませんでした。私は何を間違えていますか?
解決
次のように、インターフェイスにプロシージャの署名を配置する必要があります。
unit main;
interface
procedure Discard();
implementation
procedure Discard();
begin
//do whatever
end;
他のユニットは" see"しかできません。インターフェイスセクションにリストされているものは何でも。
他のヒント
ユニット" Main" 「インターフェース」で破棄を宣言します。セクション:
unit Main;
interface
uses ...
procedure Discard (...); // only the declaration, not the entire procedure
implementation
... // code
ユニット" Engine"で「メイン」を追加します; 「用途」にセクション。
uses Main, ...
それで、 Discard(...)
を今すぐ呼び出すことができます。複数の Discard()
がある場合、 Main.Discard()を使用して this
Discard()
を明示的に呼び出すことができます。 code>。
所属していません StackOverflow