Bueno, que
[Delphius] tiene razón, está un poco confuso el planteo, pero igual creo que te he entendido.
Por lo que veo creas el frame desde código, no desde el diseñador, lo cual ya es algo raro, ¿no te sería más útil crearlo e insertarlo en tiempo de diseño? Si lo crearas en tiempo de diseño no tendrías este problema, pues el frame se crearía junto con el form y antes de mostrarse ambos.
El problema es que si llamas al procedimiento
Create del frame e inmediatamente tratas de acceder a sus propiedades o métodos resulta que no le das tiempo a Windows a crear un identificador para esa ventana, de ahí el error. Si esperas un tiempo prudente (milisegundos) a que finalicen las rutinas de creación del frame no tendrás problemas.
Si no quieres o no puedes crearlo en tiempo de diseño e insistes en utilizar el tiempo de ejecución puedes usar una rutina del tipo
try... except... end para comprobar si se han terminado las rutinas de creación, y mantener un bucle hasta que se cumpla esa condición.
Sería algo así:
Código Delphi
[-]
procedure TForm1.FormCreate(Sender: TObject);
label comienzo;
var fallo:boolean;
begin
comienzo:
fallo:=false;
try
resultado:=(Form.pagecontrol1.ActivePage.Controls[0] as TFRAME1).mMemo.lines.gettext;
except
fallo:=True;
end;
if fallo then
goto comienzo;
end;
de forma que si se produce una excepcion se vuelve a intentar hasta que se produzca un resultado válido.
Espero que con esto soluciones tu problema. Saludos.