Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Ayuda para solventar un error de diseño (https://www.clubdelphi.com/foros/showthread.php?t=78560)

Willo 29-04-2012 21:24:38

Ayuda para solventar un error de diseño
 
Buen dia a todos, tengo un error de concepto en mi aplicacion pero quisiera que me dieran alguna sugerencia de como solventarlo.

Tengo una pantalla de captura que en la parte superior tiene una Toolbar con botones y esta el area de captura con varios campos. Algunos de ellos tienen definidos eventos OnEnter y OnExit que realizan ciertas validaciones y calculos.

El detalle es el siguiente, al cambiar el contenido de un campo X e inmediatamente darle click al boton del Toolbar de grabar la informacion, el evento OnExit de ese campo no se ejecuta antes del evento Onclick del boton sino despues. Por lo que los calculos o validaciones del campo no se realizan sino hasta despues de haberse grabado la informacion.

Alguna sugerencia que me permita mantener el esquema de mi pantalla y al mismo tiempo asegurarme de que todos la informacion esta lista para ser grabada?

De antemano, gracias!

marcoszorrilla 29-04-2012 21:31:42

Mi pregunta es, no estarás utilizando SpeedButton en esa barra, porque no hace mucho me lleve una sorpresa al ver que el evento OnExit de un campo no se ejecutaba cuando el usaurio pulsaba sobre un SpeedButton, supongo que se deba a que no tienen Foco estos botones, comprobé que utilizando un Bitbtn toda funcionaba corréctamente, haz la prueba y nos cuentas.

Un Saludo.

Willo 29-04-2012 21:35:27

Pues estoy utilizando los ToolButtons, no sabia que la toolbar se podian usar de otros botones, lo intentare!.

Willo 29-04-2012 21:37:34

Cita:

Empezado por Willo (Mensaje 431383)
Pues estoy utilizando los ToolButtons, no sabia que la toolbar se podian usar de otros botones, lo intentare!.

Comprobado, no se puede... :mad:

Willo 29-04-2012 21:49:02

San Google me ayudo a encontrar este procedimiento....

Código:

procedure Form1.SpeedButton1Click(Sender: TObject);
 var
  hOldControl : TWinControl;
 begin
  hOldControl := ActiveControl;
  ActiveControl := nil;
  ActiveControl := hOldControl;
  // further processing
 end;

probando...

Willo 29-04-2012 21:57:37

Con un simple:
Código:

ActiveControl := nil;
es mas que suficiente!! :)


La franja horaria es GMT +2. Ahora son las 04:14:54.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi