Tú estás mezclando los dos métodos que se hablaron aquí:
Código Delphi
[-]
var
FormClass: TPersistentClass;
begin
FormClass := GetClass(i);
if Assigned(FormClass) then
if (FormClass.InheritsFrom(TForm)) then
with Application do
if Assigned(FindComponent(i)) then
(FindComponent(i) as TForm).ShowModal()
Else
ShowMessage('No Encontrado');
End;
Si haces una traza del programa, notarás que la ejecución logra llegar donde marqué; lo cual quiere decir que sí encontró la clase (GetClass) y sí se trata de un formulario (InheritsFrom).
Pero luego es cuando mezclas el otro método, y el condicional falla (FindComponent), y falla por lo que comentó
dec: para que funcione, tendrían que crearse los formularios desde el inicio de la aplicación, en el autocreate.
Entonces, para que funcione, tendrías que quitar esa parte y dejar el código tal como lo puse yo, o bien olvidarte de mi método y usar el de
dec, pero lo esencial es que no mezcles una cosa con la otra.
// Saludos