Ver Mensaje Individual
  #5  
Antiguo 28-02-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 28
Lepe Va por buen camino
Sobre mrOk tienes toda la razón, añade "uses Controls" para que funcione.

Una ventana tienes 2 formas de mostrarla, imagina este código:
Código Delphi [-]
frmclientes.Show;
dos := 2;
Si utilizas .Show, el programa ejecutará las 2 líneas, es decir, después de mostrar la ventana de clientes, hará la asignación "dos := 2".

Código Delphi [-]
var respuesta : integer;
begin
respuesta := frmclientes.showModal;
case respuesta of
 mrOk : hacer lo que sea
 mrCancel : hacer lo que sea
 mrAbort : hacer los que sea
end;
dos := 2;

Si utilizas ShowModal, el código se queda detenido justo en esa línea del ShowModal, se muestra la ventana de clientes y se queda esperando hasta que la propia ventana dé una respuesta.

La respuesta se da asignando la propieda frmClientes.ModalResult a uno de los valores siguientes : mrOk, mrCancel, mrAbort y ahora sí continuará la ejecución después del ShowModal.

¿qué valor devolver? ¿mrok? ¿mrCancel? ... depende de tí, puedes devolver el que mejor te apetezca, yo he usado mrOk y mrCancel pero podría haberse utilizado mrOk y mrAbort que quizás es más intuitivo... (abortar la ejecución si no se valida el usuario).

Edito: puedes cambiar el estilo de la ventana de fsStayOnTop a fsNormal.

La principal ventaja de ShowModal, es que la aplicación entera se queda congelada (incluso si estas mostrando varias ventanas al mismo tiempo) y solo deja interactuar al usuario con la ventana mostrada por ShowModal.... como ves, es el uso típico de una ventana de Login.

Recuerda que tu ventana password, debe tener la propiedad visible a false en tiempo de diseño.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 28-02-2007 a las 17:17:00.
Responder Con Cita