Мне нужно получить список типов форм, но только для типов, производных от данной базовой формы.
Я использую Delphi 2010 и расширенный RTTI для просмотра типов
Мой текущий код:
rc := TRTTIContext.Create;
rtyps := rc.GetTypes;
for rtyp in rtyps do
begin
if not(rtyp.IsInstance) then Continue;
// Now I need to check if rtyp.AsInstance.MetaclassType is derived from TMyBaseForm
end;
Я не хочу инстанцировать объект и использовать оператор 'is', так как он не будет выполняться своевременно.
В качестве текущего обходного пути я проверяю, найден ли метод, введенный в TMyBaseForm, в контексте RTTI:
if (rtyp.GetMethod('MyMethod') = nil) then Continue;
но это не чистое решение, так как оно может привести к проблеме, если метод с тем же именем был введен в другой ветке класса.
Итак, мой вопрос: есть ли обычный способ определить, является ли тип класса производным от другого типа класса?
Thanks,