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