PDA

Ver la Versión Completa : Form Login no se pone en foco


amadis
07-03-2016, 18:46:20
Que tal compañeros.

Les comento que he insertado un form de login que tengo desarrollado y siempre uso, en un nuevo projecto, para que se loguee al inicio y no se pone bien en foco.

En el evento con show del Form Principal tengo una llamada a un item de action manager que hace lo siguiente.

Application.CreateForm(TFIniciarSesion, FIniciarSesion);
FIniciarSesion.ShowModal;

El form Iniciar sesion tiene 2 edit (user y pass) y 2 button (ok cancel).
El Taborder 0 es el edit de usuario y el 1 el del pass, y en el evento onenter de cada edit cambio el color para saber que está en foco.

Lo curioso es que en este caso abre la aplicación, muestra el Form de inicio sesión, está el edit de usuario COLOREADO como en foco pero NO LO ESTÁ ya que al tipear no pasa nada, y si tipeo tab pasa al edit siguiente.
Si al abrir el programa antes de tipear algo hago un ALT+TAB y cambio de aplicacion un segundo cuando vuelve SI está bien en FOCO el edit de usuario y deja tipear.

Alguna idea de qué puede estar interfiriendo o pasando?

Caral
08-03-2016, 01:53:23
Hola
Parece que tienes dos forms haciendo lo mismo o con eventos similares y se afectan.
Me imagino que entra el form principal y este llama al form del login en su evento on show.
Tal vez si llamas al form login deberías hacerlo en el evento on create del form principal ya que mostrara el login antes de que se muestre el principal.
No se, digo.
Saludos
PD: hace tanto que no hago esto que mejor si te ayuda alguien que sepa jejeje

Casimiro Notevi
08-03-2016, 02:01:04
Saludos
PD: hace tanto que no hago esto que mejor si te ayuda alguien que sepa jejejeAprovecho para saludar al gran amigo Caral :)

Caral
08-03-2016, 02:06:09
Hola
Igualmente amigo.
Aqui, pasando el rato a ver si me acuerdo de algo :D:D
Ya esto no es para mi, no me acuerdo de muchas cosas. :o
Saludos

amadis
08-03-2016, 02:06:32
El form principal es un TMDIForm que inicia pelado con un mainmenu., el form INicioSesion es un TForm normal en showmodal.


Todos los demas forms que aparecerán después son MDIChild.

Caral
08-03-2016, 02:12:12
Hola
No se, pero por que usar un TMdi como principal si solo tiene un menu ?
En tal caso es mejor hacerlo normal y crearlo en ejecución.
No seria mas facil ?
Para mi (por supuesto sin conocimiento) hay algo que esta molestando en el codigo de alguno de los dos, seria bueno verlo (tal vez hasta me acuerde )
Saludos

Casimiro Notevi
08-03-2016, 09:58:28
Ya esto no es para mi, no me acuerdo de muchas cosas. :oEs normal que te olvides si lo has abandonado durante un tiempo, yo he estado haciendo cosas en android últimamente y ahora el delphi me parece "raro" :D, pero lo recuerdo bien en cuanto lo trasteo un poco :)

El form principal es un TMDIForm que inicia pelado con un mainmenu., el form INicioSesion es un TForm normal en showmodal.
Todos los demas forms que aparecerán después son MDIChild.Si no es necesario, deberías abandonar MDI, está obsoleto.

amadis
08-03-2016, 12:23:30
Gracias compañeros.

Me gusta el MDI, y he estado luchando para que funcione bien con los TRibbon.

En este caso tiene un Tmainmenu y statusbar. Y dentro de abren varias ventanas. Me gusta la forma de maximizar las ventanas hijas dentro de la padre.

Debe ser nostalgia...

amadis
08-03-2016, 14:08:08
Finalmente he repasado todo y en el primer archivo del proyecto encontré el detalle, una pavada que olvidé cambiar como siempre hago. Otras de mis ideas nostalgicas.

En el DPR olvidé pasar a false la siguiente linea

Application.MainFormOnTaskbar := true;

Y eso aparentemente le sacaba el foco el form login.

Así que tema cerrado.