Мне нужно получить список типов форм, но только для типов, полученных из данной базовой формы.
Я использую 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;
но это не чистое решение, так как это может привести к выпуску, если метод с тем же именем был введен в другую ветку класса.
Итак, мой вопрос: существует ли регулярный способ определения того, является ли тип класса производным от другого типа класса?
Спасибо,