Ver Mensaje Individual
  #5  
Antiguo 12-07-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Reputación: 25
Delphius Va camino a la fama
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
   // lo que haya que hacer para determinar si está registrado
   // en ocasiones basta con hacer una consulta del tipo:
   // select top 1 ID_REGISTRO from TABLA_REGISTRO
   // Tal vez result vendría a tener una forma como esta:
  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,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita