필자는 Delphi 7 프로젝트에서 "finalization"섹션을 가진 많은 유닛을 보유하고 있습니다.특정 "종료"섹션이 마지막으로 실행 된 섹션인지 어떻게 확인합니까?
마지막으로 코드를 실행하려면 어떻게해야합니까?
.dpr 파일에 "finalization"섹션을 작성하려고했지만 컴파일되지 않습니다.
필자는 Delphi 7 프로젝트에서 "finalization"섹션을 가진 많은 유닛을 보유하고 있습니다.특정 "종료"섹션이 마지막으로 실행 된 섹션인지 어떻게 확인합니까?
마지막으로 코드를 실행하려면 어떻게해야합니까?
.dpr 파일에 "finalization"섹션을 작성하려고했지만 컴파일되지 않습니다.
Unit finalization order for application compiled with run-time packages 코드의 마무리 순서에 좋은 설명이있다 - 질문자는 자신의 순서가 작동하는지 확인하기 위해 합리적인 방법을 함께했다 - 프로젝트의 uses 절의 시작에서 모듈 를 추가하고 확인 문제의 모듈 은 다른 유닛을 사용하지 않습니다.
편집 : David Heffernan의 부록을 탑재했습니다.
uses 절의 시작 부분에 모듈을 추가하고 ** no ** 다른 단위를 사용하는지 확인하십시오. –
의존성과 주문을 의존하지 않고 수정할 수 있다면 코드를 더 재사용하고 안전하게 사용할 수 있습니다. –
초기화 및 종료는 고대 파스칼에서 왔습니다. 보통 클래스 유엔/등록 등 글로벌 일을하는 데 사용됩니다 ...하지만 이것은 그렇게 OOP 스타일이 아닙니다. 그것들을 피하려고 시도하면 더 나은 접근 방법은 객체/클래스 메소드를 사용하여 사물을 초기화/초기화 해제하는 것입니다. – Marcodor
FWIW, 최신 Delphi에는 클래스에 대한 첫 번째 액세스 전에 실행되고 클래스에 마지막으로 액세스 한 후에 실행되도록 보장되는 클래스 생성자 및 소멸자가 있습니다. 그들은 종종 초기화 및 종료 섹션을 완전히 대체 할 수 있습니다. 그러나 나는 그들이 불리는 순서가 정의되어 있다고 생각하지 않는다. –