Delphi에서 객체를 XML로 구문 분석하려고하므로 객체의 ClassInfo 메소드를 호출하여 RTTI 정보를 가져 오는 방법에 대해 읽습니다. 이것은 분명히 TPersistent 개체에서만 작동합니다. 그렇지 않으면 RTTI 정보를 생성하기 위해 컴파일러 지시문 {$ M +}을 소스 코드에 특별히 추가해야합니다. 그래서 나는 지시어를 추가했습니다. Cl
예를 들어,이 클래스가 (런타임에) 가상 생성자를 가지고 있는지 확인하는 방법이 있습니까? 작동 RTTI를 사용하여 예를 들어, procedure Test;
var
Clazz: TClass;
Instance: TObject;
begin
Clazz := TMyClass;
Instance := Clazz.Create;
C++에서는 문제가 간단합니다. 나는 2 개의 클래스를 가지고 있는데, 하나는 구현의 일부로 다른 클래스를 포함하고있다. struct A
{
void do_something()
{
};
};
struct B
{
A obj_A;
void hello_world()
{
};
};
이제
델파이에서 RTTI (또는 다른 것)를 사용하여 클래스가 추상으로 선언되었는지 확인할 수 있습니까? 같은 뭔가 다음 TypInfo 장치를 통해이 TMyAbstractClass = class abstract(TObject)
// ...
end;
...
if IsAbstract(TMyAbstractClass.ClassInfo) then
각 클래스가 특정 TComponent 자손 (예 : TComponent, TCustomAction 및 TMenuItem에 해당하는 자손 TAductFrobber 및 TMenuItemFrobber로 기본 클래스 TDefaultFrobber를 말함)에 해당하는 작은 클래스 계층 구조가 있습니다. (?) : function CreateFrobber(ACompon