Ver Mensaje Individual
  #7  
Antiguo 21-03-2009
Avatar de chino150
chino150 chino150 is offline
Miembro
 
Registrado: dic 2007
Posts: 86
Reputación: 19
chino150 Va por buen camino
Cita:
Empezado por roman Ver Mensaje
Hola,

Los pasos básicos a seguir son:

1. Colocar un Edit por cada dato que requieras: host, user, password, database, etc.
2. Colocar dos botones: Aceptar y Cancelar. Al primero le pones su propiedad ModalResult en mrOk y su propiedad Default en true. Al segundo le pones su propiedad ModalResult en mrCancel y su propiedad Cancel en true.
3. En el evento OnCloseQuery del formulario verificas qué botón se oprimió:

Código Delphi [-]if ModalResult = mrOk then begin (* Aquí verificas que los datos sean correctos *) (* Si no lo son puedes lanzar una excepción o *) (* ajustar el parámetros CanClose del evento a *) (* false, para evitar que se cierre el formulario *) end;


Observa que no programas nada en el evento OnClick del botón. Aunque podrías hacerlo así, lo normal es hacerlo en el OnCloseQuery como te he mostrado.

4. Cuando muestres el formulario de login, lo haces usando ShowModal y el valor de regreso de esta función es el que te indica si el usuario aceptó o canceló, y con base en ello muestras o no tu formulario principal. Si este cuadro de login lo vas a mostrar al inicio de la aplicación, lo más adecuado es hacerlo en el archivo dpr (Project|View source). Aquí un ejemplo:

Código Delphi [-]program LoginDemo; uses Windows, Forms, Main in 'Main.pas' {MainForm}, Login in 'Login.pas' {LoginForm}; {$R *.res} begin Application.Initialize; LoginForm := TLoginForm.Create(Application); if LoginForm.ShowModal = idOk then begin LoginForm.Free; Application.CreateForm(TMainForm, MainForm); end; Application.Run; end.


Observa que el formulario principal sólo se crea en caso de que el usuario haya oprimido Aceptar (ShowModal = idOk). Si cancela, el formulario no se crea y, no habiendo uno, la aplicación termina inmediatamente después de Application.Run.

// Saludos
Gracias Mil todo esta bien Muchas Gracias!!!!!!!!
Responder Con Cita