![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Estube haciendo unas pruebas. Con unos StringGrid y DBGrid ya que no especificas cual usas y siempre se ejecuta el evento OnExit antes del click en el segundo Grid.
Talvez podrias poner parte de tu codigo para que te podamos dar un poco mas de ayuda. |
|
#2
|
|||
|
|||
|
Algo que no mencione es que el grid1 esta en un tabsheet y el grid2 esta en la forma como tal.
Si estoy editando en el grid1 y doy click en otro componente que se encuentre en el tabsheet, se ejecuta primero el evento grid1.onclick y luego el evento del click del otro componente, pero no sucede asi si doy click en el grid2, tambien se da en los botones del toolbar; ejecuta primero el evento del click y luego grid1.onclick La medida que tome fue hacer una validación en cada uno de los componente que me genera problemas Código Delphi [-]Function TFPrProy.ValidaDisp(Sender: TObject):Boolean; Begin If (Sender <> GrDistrFond) and ValDisp then Begin GrDistrFond.OnExit(Sender); If not ValDisp then Grid.SetFocus; End; Result := ValDisp; End; Entonces dependiendo lo que retorne esa funcion se ejecuta los eventos del onclick de los diferentes componentes
__________________
Keilly Livey Chinchilla Salas |
|
#3
|
||||
|
||||
|
Cita:
No importa donde esté hubicado grid1. Insisto, si como decís, estás editando en grid1 (grid1 tiene el foco) y hacés click sobre otro control, primero se ejecuta grid1.OnExit por que este evento se produce cuando el control pierde el foco. Es más, si acabás de hacer un click sobre otro control... ¿ Como podría disparase grid1.OnClick ? ![]() Es muy fácil de comprobar, poné en un form: .- Dos StringGrid donde quieras: tabsheet, solos ... (Supongo que son StringGrid por que DBGrid no tinene el evento OnClick) .- Varios controles que puedan recibir el foco. .- Asigna:
Y verificalo. En mis pruebas, con y sín TabSheet, el único grid1.OnClick que recibí fue cuando hice click sobre grid1. Saludos. ![]() Última edición por ecfisa fecha: 26-08-2010 a las 20:43:23. |
|
#4
|
|||
|
|||
|
Quizas no me explique bien, no es que siempre se ejecuta grid2.onclick, sino se ejecuta el click de componente que clickeo.
Crei que quizas era alguna propiedad que permitia esto. Le doy la razon no es lógico, pero se me esta dando, porqué? ni idea. Lo curioso es que siempre y cuando de click en componentes que estan en el tabsheet si se ejecuta primero grid1.onexit, pero si es en un componente fuera del tabsheet, ejecuta primero el click del componente y luego ejecuta el grid1.onexit.
__________________
Keilly Livey Chinchilla Salas |
|
#5
|
||||
|
||||
|
Hola Livey.
A ver... La cuestión es quien tiene el foco y si tiene o nó declarada una respuesta en el evento. Lo que yo quiero decir es que si cada control tiene asignado algo a sus eventos OnClick y OnExit, y estando en un control en particular, si se hace click sobre el otro, el orden de disparo de los eventos es: 1) Control1.OnExit. 2) Control2.OnClick. Ahora, ¿ Como puede pasar lo que sucede ? La única manera que me ocurre es: Tenemos dos controles Ctrl1 y Ctrl2 y tienen sus eventos asignados de este modo. Ctrl1:
Ctrl1.OnExit = nil (ningún evento asignado) Ctrl2:
Ahora supongamos que estamos con foco en Ctrl1. Si hago click sobre Ctrl2, es lógico que no voy a recibir respuesta del evento Ctrl1.OnExit y sí el mensaje 'Ctrl2 OnClick'. Saludos. Última edición por ecfisa fecha: 26-08-2010 a las 21:26:26. |
|
#6
|
|||
|
|||
|
Ok voy a verificar bien lo del focus, pero dime si estoy equivocada, se supone que si yo estoy escribiendo en el grid1, significa que el focus se encuentra en él.
__________________
Keilly Livey Chinchilla Salas |
|
#7
|
||||
|
||||
|
Cita:
Saludos. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Cancelar accion de un evento OnExit | FGarcia | Varios | 5 | 11-05-2007 13:38:18 |
| Evento 'OnExit' del Form | Wellnic | OOP | 3 | 10-04-2007 19:08:51 |
| Problemas con evento OnExit | santi33a | Varios | 4 | 15-04-2006 13:30:50 |
| Evento OnExit de un Edit | Caro | OOP | 1 | 03-02-2006 17:57:01 |
| OnExit | DarioArg | Varios | 2 | 12-03-2005 02:34:55 |
|