다른 장치에서 절차를 실행하는 방법은 무엇입니까?
-
05-07-2019 - |
문제
이런 종류의 N00B 질문이지만 여전히 알아낼 수 없습니다. 나는 단위가있다 main
절차와 함께 Discard()
그것에. 이제 다른 유닛이 있습니다 engine
그리고 IT 절차에서 실행하고 싶습니다 Discard()
단위 main
. 나는 메인이있다 uses
섹션 engine.pas
. 나는 절차를 전화하려고했다 main.Discard()
그러나 좋지 않습니다. 내가 뭘 잘못하고 있죠?
해결책
절차의 서명을 인터페이스에 넣어야합니다.
unit main;
interface
procedure Discard();
implementation
procedure Discard();
begin
//do whatever
end;
다른 단위는 인터페이스 섹션에 나열된 내용 만 "참조"할 수 있습니다.
다른 팁
"main"단위에서 "인터페이스"섹션에서 버려지는 것을 선언합니다.
unit Main;
interface
uses ...
procedure Discard (...); // only the declaration, not the entire procedure
implementation
... // code
이제 "엔진"장치에서 "사용"섹션에 "메인"을 추가합니다.
uses Main, ...
그게 다, 당신은 전화 할 수 있습니다 Discard(...)
지금. 둘 이상이있는 경우 Discard()
당신은 설명 적으로 전화 할 수 있습니다 이것 Discard()
사용하여 Main.Discard()
.
제휴하지 않습니다 StackOverflow