質問

まあ、この種の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>。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top