Kod: Tümünü seç
uses
Rtti,
TypInfo,
Classes;
function GetSubClassList(AClass: TClass): TStrings;
var
atypes:TArray<TRttiType>;
atype:TRttiType;
alist:TStringList;
begin
r:=TRttiContext.Create;
atypes:=r.GetTypes;
alist:=TStringList.Create;
for atype in atypes do
begin
if (atype.TypeKind=tkClass) and atype.IsInstance and
atype.AsInstance.MetaclassType.InheritsFrom(AClass)
and (atype.Name<>AClass.ClassName) then
begin
alist.Add(atype.Name);
end;
end;
//atype.AsInstance.BaseType.MetaclassType.ClassName
Result:=alist;
end;
Kullanım :
Kod: Tümünü seç
ShowMessage(GetSubClassList(TControl).Text);