2
내 응용 프로그램은 필요한 객체의 구현을 제공하는 패키지를 동적으로로드합니다. 동적으로 인스턴스를 생성하는 데 사용하는 목록 구조에 객체 클래스를 등록하는 전역 함수가 있습니다.초기화시 현재 패키지 이름 얻기
procedure RegisterObjectStd(const APackageName, AObjectName: string; const AClass: TClass);
하여 나는 공장 방법을 통해
예를 특정 컨텍스트를 기준으로 인스턴스를 만들 수 있습니다
function CreateObject(const APackageName, AObjectName: string): TObject;
이는 dinamically 현재 패키지의 이름을 (검색 할 수있는 방법입니다. bpl) 내 초기화 코드에서?
initialization
RegisterObjectStd(GetCurrentBplName, 'MyObjectName', TMyObjectClass);
'GetModuleName (HInstance)'는 어떻습니까? –
패키지 이름과 동일하지 않을 수도있는 파일 이름을 가져옵니다. 좋은 예는 버전이있는 패키지입니다. 예를 들어'rtl' 패키지는'rtl210.bpl'과 같은 파일 이름을 가질 수 있습니다. –