|
음... 그래픽 Ex컴포넌트를 사용해서 그래픽 파일들을 로딩하려고 하는데..
예제로 나온 TFileFormatList를 이용해서 파일 형식에 맞춰서 동적으로 클래스 생성하는게..
빌더에서 잘않되네요..;;
그냥 TGIFGraphic같이 직접 클래스 할당해서 로딩하면 잘 로딩되는데..
TMetaClass형태로 받아서 해당 클래스를 동적 생성하면 로딩중에 에러가 나네요..
음..매타 클래스 생성하는데 두가지 방법을 뉴스그룹에서 찾아서 해봤는데..
두가지 다 않되네요..
TObject* CreateMetaClassObject(TMetaClass* metaClass)
{
int objSize = TObject::InstanceSize(metaClass);
TObject* obj = (TObject*)new char[objSize];
TObject::InitInstance(metaClass, obj);
return obj;
}
이 함수를 이용해서도 해봤고..
완벽하게 하려면 다음과 같은 델파이 함수 만들어서 쓰라고 해서
{ This code is modified from a sample provided by Jeff Overcash (TeamB).
Thanks, Jeff, for sharing.
}
unit CreateDynInst;
{$R-,T-,H+,X+}
interface
uses Classes;
//type TClass = class of TObject;
function CreateDynamicInstance(ClassRef : TClass) : TObject;
implementation
function CreateDynamicInstance(ClassRef : TClass) : TObject;
{var
FC : TComponentClass;
}
begin
try Result := ClassRef.Create;
except Result := nil;
end;
end;
initialization
finalization
end.
이것도 만들어서 써봤는데 둘다 실행중에 에러가 나오네요..;;
음...직접 만들면 잘되는데..;;
뭘 잘못한걸까요? 경험있으신분 답변좀 부탁드립니다.
P.s 지금은 불쌍하게 switch문으로 각자 타입별로 따로 할당하도록 하고 있습니다 ㅜ_ㅡ 이쁘게 하고 싶은데..
|