Ver Mensaje Individual
  #2  
Antiguo 12-07-2008
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Reputación: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Generalmente, los formularios en que se solicita el "registro" a un usuario, se muestran de forma "modal": no permiten hacer nada en el resto de la aplicación, obligando al usuario a hacer "algo" con el formulario que le presentamos. El asunto podría quedar tal que así:

Código Delphi [-]
begin
  with TfrmUserRegistry.Create(nil) do
  try
    if (ShowModal() = mrOk) then
    begin
      // El usuario "aceptó"
    end else begin
      // El usuario "canceló"
    end;
  finally
    Free(); // Liberamos el formulario
  end;
end;

El código anterior crea, muestra y comprueba el resultado de mostrar el formulario "modalmente". Acto seguido, y, en cualquier caso, libera el formulario en cuestión. Ahora bien, tal como yo lo veo, tú deberías comprobar si el usuario proporcionó datos correctos en "El usuario aceptó". Y no hacer "nada" si "El usuario canceló".

Si el usuario "aceptó" comprobarías que los datos que ha proporcionado son válidos. Si lo son... y no quieres que dicho usuario vuelva a ver el formulario, la cosa creo que pasaría por guardar dichos datos en algún sitio. Tú mismo mencionas la base de datos de tu aplicación. Entonces, nos queda que, antes de mostrar el formulario, deberíamos comprobar si el usuario ya se "registró" antes. Algo como:

Código Delphi [-]
begin
  if not UserHaveRegistryData() then
  begin
    with TfrmUserRegistry.Create(nil) do
    try
      if (ShowModal() = mrOk) then
      begin
        // El usuario "aceptó"
      end else begin
        // El usuario "canceló"
      end;
    finally
      Free(); // Liberamos el formulario
    end;
  end;
end;

La idea es que la función (o método) "UserHaveRegistryData()" compruebe que existe información en la base de datos (por ejemplo) que confirme que el usuario ya "registró" la aplicación. Si no lo ha hecho, le mostraremos el formulario para que lo pueda hacer, y, si lo ha hecho... no le mostramos formulario alguno.

Pero, igual es que me he perdido algo, porque, yo creo que esto que digo tú ya lo sabes... ¿No?
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita