Hola BuRtOn,
por lo que estoy comprendiendo del tema, tu problema es como determinar si el usuario es registrado o no. Tu problema es del tipo lógico/diseño.
Lo más natural es que al momento en que se ejecuta el aplicativo se dispare una función que se encargue de ello.
Por simplicidad asumamos una función UsuarioRegistrado() que devuelve un boleano:
Código Delphi
[-]function UsuarioRegistrado: boolean;
begin
result := query1.RecordCount = 1
end;
Bueno, esa función de ejemplo lo que hace es emitir una consulta contra la base de datos en busca de un registro en particular (un ID_Registro).
El algoritmo está diseñado para que siempre y cuando exista un y solo un registro en la tabla TABLA_REGISTRO se de por válido que el usuario se registró.
¿Cuando se ejecuta esta función?
Lo más obvio (y sencillo) podría sugerir en el OnCreate de la forma principal. Se podría hacer algo como esto:
procedure FrmMainOnCreate(Sender: TObject);
begin
UserValido := UsuarioRegistrado;
end;
Siendo UserValido una propiedad, o variable.
Y bueno, nos resta ahora solamente el tema de operar en base a este resultado. Lo más sencillo de hacer es como señala Dec:
Código Delphi
[-]if NOT UserValido
then begin
try
with TfrmRegistro.Create(nil) do
...
finally
TfrmRegistro.Free;
end;
end;
Ahora bien, ¿que se necesita para que ejecute normalmente la función UsuarioRegistrado? Que haya una conexión establecida.... por tanto, antes de ejecutar dicha función deberá asegurarse de esto.
Que quiero hacerte notar, que tu problema es del tipo lógico. Sugiero que realices una búsqueda en los foros, porque este tema se ha tratado en otras ocasiones.
Saludos,