Para poder explicar esto veamos un pequeño ejemplo, desarrollandolo paso a paso.
1.- Creamos una aplicación nueva, por defecto viene con el Form1.
2.- Agregamos un segundo formulario.
3.- En este formulario agregamos dos botones, uno que nos permita entrar y otro que nos permita salir.
4.- En el formulario de entrada colocamos el siguiente codigo:
delphi
procedure TForm2.BitBtn1Click(Sender: TObject); begin ModalResult := mrOk; end;
Esto nos permite determinar que el formulario modal devuelva un valor ok
Luego en el de salir colocamos la instruccion que nos permita cerrar.
delphi
procedure TForm2.BitBtn2Click(Sender: TObject); begin Close; end;
5.- Abrimos el archivo DPR, el cual por defecto tendra este codigo:
delphi
begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.CreateForm(TForm2, Form2); Application.Run; end.
Alli estamos creando los dos formularios junto con ejecutar la aplicacion, lo que nos interesa en este punto es que el Form2 se ejecute al principio y que Form1 sea el principal, para esto no nos queda de otra que crear y ejecutar el form2 manualmente, por lo tanto el DPR quedaria asi:
delphi
begin Application.Initialize; Form2 := TForm2.Create(Application); if Form2.ShowModal = mrOk then begin Application.CreateForm(TForm1, Form1); Application.Run; end; end.
En este caso creamos Form2 automaticamente, si el resultado de su ejecución es mrOk entonces se entra al sistema, de lo contrario iriamos al final de la aplicacion.
Para que funcione debemos agregar la libreria Controls al uses del DPR para que reconozca la constante mrOk.
Se aceptan comentarios, la proxima entrega es como validar un usuario, pero realmente podemos hacer cualquier cosa o validación en form2 siempre que devolvamos mrOk cuando queramos entrar en el sistema.
Un formulario modal se cierra automaticamente al asignarle un valor a la propiedad ModalResult.