In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Preguntas de principiante
Preguntas de principiante
Hola,
1. ¿Donde se indica que se utiliza INTRO además del TAB para moverme
entre los diferentes controles.
2. ¿Como se puede emular el famoso WHEN de Clipper (o era F*H)?
3. ¿Como se puede emular la muuuuuy utilizada cláusula CANCEL de F*H en
toda la familia de botones?
De momento eso...
Gracias por la ayuda,
José Luis Capel
1. ¿Donde se indica que se utiliza INTRO además del TAB para moverme
entre los diferentes controles.
2. ¿Como se puede emular el famoso WHEN de Clipper (o era F*H)?
3. ¿Como se puede emular la muuuuuy utilizada cláusula CANCEL de F*H en
toda la familia de botones?
De momento eso...
Gracias por la ayuda,
José Luis Capel
Preguntas de principiante
Hola,
1) Application:lUseReturn := .T. // Usa Return Sí/No
2) OnEnter := { | oSender, oPrevCtl| loquequieras() } // Cuando toma el
foco OnExit el valid
o también :
OnEnter := "MiMétodo"
Y te creas un método en el mismo form con ese nombre y con los parámetros
(oSender, oPrevCtl)
3) Lo del cancel no lo entiendo muy bien, si cancelas no grabas ¿no? pues
eso no grabes, aunque hay una Property en el Tbutton que puede que sea lo
que quieres oButton:nModalResult := mrCANCEL
Un Saludo y espero no haberme equivocado mucho,
Joaquín
"José Luis Capel" <joseluis@iaicom.com> escribió en el mensaje
news:42c40c89$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Hola,
>
> 1. ¿Donde se indica que se utiliza INTRO además del TAB para moverme
> entre los diferentes controles.
>
> 2. ¿Como se puede emular el famoso WHEN de Clipper (o era F*H)?
>
> 3. ¿Como se puede emular la muuuuuy utilizada cláusula CANCEL de F*H en
> toda la familia de botones?
>
> De momento eso...
>
> Gracias por la ayuda,
> José Luis Capel
1) Application:lUseReturn := .T. // Usa Return Sí/No
2) OnEnter := { | oSender, oPrevCtl| loquequieras() } // Cuando toma el
foco OnExit el valid
o también :
OnEnter := "MiMétodo"
Y te creas un método en el mismo form con ese nombre y con los parámetros
(oSender, oPrevCtl)
3) Lo del cancel no lo entiendo muy bien, si cancelas no grabas ¿no? pues
eso no grabes, aunque hay una Property en el Tbutton que puede que sea lo
que quieres oButton:nModalResult := mrCANCEL
Un Saludo y espero no haberme equivocado mucho,
Joaquín
"José Luis Capel" <joseluis@iaicom.com> escribió en el mensaje
news:42c40c89$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Hola,
>
> 1. ¿Donde se indica que se utiliza INTRO además del TAB para moverme
> entre los diferentes controles.
>
> 2. ¿Como se puede emular el famoso WHEN de Clipper (o era F*H)?
>
> 3. ¿Como se puede emular la muuuuuy utilizada cláusula CANCEL de F*H en
> toda la familia de botones?
>
> De momento eso...
>
> Gracias por la ayuda,
> José Luis Capel
-
- Mensajes: 203
- Registrado: Vie Abr 01, 2005 9:05 am
Preguntas de principiante
Jose Luis,
Según me explicó Jose F. Giménez, la propiedad lCancel de los botones de
Xailer efectúan la salida del formulario.
Por otro lado, en Xailer no hay forma de hacer que cuando se salga de un
edit (cualquiera de ellos) no se dispare el evento OnExit, lo que es una
lata a la hora de salir pulsando un botón (si pulsas ESC o el aspa de
cerrar el formulario no se dispara el evento OnExit ¿curioso, verdad?).
En fin, a ver si conseguimos que nos pongan algo que sirva para evitar
esa situación, ya que es obligación nuestra como programadores y no de
windows, xailer o quien sea, decirnos como validad lo que se mete en un
edit y cuando no debe ser evaluado.
Por lo demas, creo que Joaquin te ha contestado correctamente.
Saludos,
Jose A. Suárez
José Luis Capel escribió:
> Hola,
>
> 1. ¿Donde se indica que se utiliza INTRO además del TAB para moverme
> entre los diferentes controles.
>
> 2. ¿Como se puede emular el famoso WHEN de Clipper (o era F*H)?
>
> 3. ¿Como se puede emular la muuuuuy utilizada cláusula CANCEL de F*H en
> toda la familia de botones?
>
> De momento eso...
>
> Gracias por la ayuda,
> José Luis Capel
Según me explicó Jose F. Giménez, la propiedad lCancel de los botones de
Xailer efectúan la salida del formulario.
Por otro lado, en Xailer no hay forma de hacer que cuando se salga de un
edit (cualquiera de ellos) no se dispare el evento OnExit, lo que es una
lata a la hora de salir pulsando un botón (si pulsas ESC o el aspa de
cerrar el formulario no se dispara el evento OnExit ¿curioso, verdad?).
En fin, a ver si conseguimos que nos pongan algo que sirva para evitar
esa situación, ya que es obligación nuestra como programadores y no de
windows, xailer o quien sea, decirnos como validad lo que se mete en un
edit y cuando no debe ser evaluado.
Por lo demas, creo que Joaquin te ha contestado correctamente.
Saludos,
Jose A. Suárez
José Luis Capel escribió:
> Hola,
>
> 1. ¿Donde se indica que se utiliza INTRO además del TAB para moverme
> entre los diferentes controles.
>
> 2. ¿Como se puede emular el famoso WHEN de Clipper (o era F*H)?
>
> 3. ¿Como se puede emular la muuuuuy utilizada cláusula CANCEL de F*H en
> toda la familia de botones?
>
> De momento eso...
>
> Gracias por la ayuda,
> José Luis Capel
Preguntas de principiante
Joaquín y José Alfonso, o José Alfonso y Joaquín 
Muchas gracias por las respuestas!!!
Saludos,
José Luis Capel
José Luis Capel escribió:
> Hola,
>
> 1. ¿Donde se indica que se utiliza INTRO además del TAB para moverme
> entre los diferentes controles.
>
> 2. ¿Como se puede emular el famoso WHEN de Clipper (o era F*H)?
>
> 3. ¿Como se puede emular la muuuuuy utilizada cláusula CANCEL de F*H en
> toda la familia de botones?
>
> De momento eso...
>
> Gracias por la ayuda,
> José Luis Capel

Muchas gracias por las respuestas!!!
Saludos,
José Luis Capel
José Luis Capel escribió:
> Hola,
>
> 1. ¿Donde se indica que se utiliza INTRO además del TAB para moverme
> entre los diferentes controles.
>
> 2. ¿Como se puede emular el famoso WHEN de Clipper (o era F*H)?
>
> 3. ¿Como se puede emular la muuuuuy utilizada cláusula CANCEL de F*H en
> toda la familia de botones?
>
> De momento eso...
>
> Gracias por la ayuda,
> José Luis Capel
Preguntas de principiante
Hola,
vamos a ver... con respecto a la propiedad lCancel de los botones, la
situación es exactamente la siguiente:
Si tenemos un TEdit cuyo OnExit devuelve .F., al hacer click sobre el botón,
el foco NO abandona el TEdit, por lo que nunca se produce el click del
botón.
Por supuesto se podría hacer un pequeño hack: si quien va a recibir el foco
es un botón con lCancel = .T., dejar que el TEdit pierda el foco para que se
produzca el click del botón. Pero esto tiene un "pequeño" problema... en el
mismo momento en que se pulsa el botón del ratón se produce el cambio de
foco, pero todavía no se produce el click. El click se produce cuando se
suelta el botón del ratón sobre el área del botón. Y ahora... ¿qué pasaría
si el usuario pulsa sobre el botón pero suelta fuera del botón? Pues que ha
cambiado el foco, saltándose a la torera la validación del edit, pero no se
llega a disparar el OnClick del botón, y no cancela nada.
Una solución de paso es usar el evento OnLButtonDown del botón. El
inconveniente es que no verás como se hunde el botón, pero sí funcionaría.
De todos modos, estoy dispuesto a escuchar todas las opiniones y sugerencias
al respecto. Incluso me gustaría que alguien probara lo que he comentado con
FW y me dijera qué ocurre.
--
Un saludo,
José F. Giménez
vamos a ver... con respecto a la propiedad lCancel de los botones, la
situación es exactamente la siguiente:
Si tenemos un TEdit cuyo OnExit devuelve .F., al hacer click sobre el botón,
el foco NO abandona el TEdit, por lo que nunca se produce el click del
botón.
Por supuesto se podría hacer un pequeño hack: si quien va a recibir el foco
es un botón con lCancel = .T., dejar que el TEdit pierda el foco para que se
produzca el click del botón. Pero esto tiene un "pequeño" problema... en el
mismo momento en que se pulsa el botón del ratón se produce el cambio de
foco, pero todavía no se produce el click. El click se produce cuando se
suelta el botón del ratón sobre el área del botón. Y ahora... ¿qué pasaría
si el usuario pulsa sobre el botón pero suelta fuera del botón? Pues que ha
cambiado el foco, saltándose a la torera la validación del edit, pero no se
llega a disparar el OnClick del botón, y no cancela nada.
Una solución de paso es usar el evento OnLButtonDown del botón. El
inconveniente es que no verás como se hunde el botón, pero sí funcionaría.
De todos modos, estoy dispuesto a escuchar todas las opiniones y sugerencias
al respecto. Incluso me gustaría que alguien probara lo que he comentado con
FW y me dijera qué ocurre.
--
Un saludo,
José F. Giménez
-
- Mensajes: 203
- Registrado: Vie Abr 01, 2005 9:05 am
Preguntas de principiante
Jose F.,
Lo hemos hablado en otra ocasión.
Una situación:
Tengo el foco en un TEdit, que tiene su correspondiente onExit que
controla que tenga contenido.
Quiero que al pulsar determinado botón (o determinados botones) se salte
el onExit. Ya me preocupare de desactivar el botón de grabar datos si me
pulsa algunos de los que cancelan los onExit de los TEdit. Esto para mí
es necesario cuando hago la edición de campos del browse fuera de del TGrid.
Otra situación:
Tengo un formulario donde hay varios TEdit con sus correspondientes
onExit. Esté donde esté el foco en ese momento (en cualquier TEdit),
quier salir del formulario (imagina "Código debe tener contenido"), el
formulario es de los que no tienen systembuttons, y le pongo un botón
para salir.
Necesito que no se dispare el onExit, por que si no, no me deja salir.
Es así de simple.
Saludos,
Jose Alfonso Suarez
Jose F. Gimenez escribió:
> Hola,
>
> vamos a ver... con respecto a la propiedad lCancel de los botones, la
> situación es exactamente la siguiente:
>
> Si tenemos un TEdit cuyo OnExit devuelve .F., al hacer click sobre el botón,
> el foco NO abandona el TEdit, por lo que nunca se produce el click del
> botón.
>
> Por supuesto se podría hacer un pequeño hack: si quien va a recibir el foco
> es un botón con lCancel = .T., dejar que el TEdit pierda el foco para que se
> produzca el click del botón. Pero esto tiene un "pequeño" problema... en el
> mismo momento en que se pulsa el botón del ratón se produce el cambio de
> foco, pero todavía no se produce el click. El click se produce cuando se
> suelta el botón del ratón sobre el área del botón. Y ahora... ¿qué pasaría
> si el usuario pulsa sobre el botón pero suelta fuera del botón? Pues que ha
> cambiado el foco, saltándose a la torera la validación del edit, pero no se
> llega a disparar el OnClick del botón, y no cancela nada.
>
> Una solución de paso es usar el evento OnLButtonDown del botón. El
> inconveniente es que no verás como se hunde el botón, pero sí funcionaría.
>
> De todos modos, estoy dispuesto a escuchar todas las opiniones y sugerencias
> al respecto. Incluso me gustaría que alguien probara lo que he comentado con
> FW y me dijera qué ocurre.
>
Lo hemos hablado en otra ocasión.
Una situación:
Tengo el foco en un TEdit, que tiene su correspondiente onExit que
controla que tenga contenido.
Quiero que al pulsar determinado botón (o determinados botones) se salte
el onExit. Ya me preocupare de desactivar el botón de grabar datos si me
pulsa algunos de los que cancelan los onExit de los TEdit. Esto para mí
es necesario cuando hago la edición de campos del browse fuera de del TGrid.
Otra situación:
Tengo un formulario donde hay varios TEdit con sus correspondientes
onExit. Esté donde esté el foco en ese momento (en cualquier TEdit),
quier salir del formulario (imagina "Código debe tener contenido"), el
formulario es de los que no tienen systembuttons, y le pongo un botón
para salir.
Necesito que no se dispare el onExit, por que si no, no me deja salir.
Es así de simple.
Saludos,
Jose Alfonso Suarez
Jose F. Gimenez escribió:
> Hola,
>
> vamos a ver... con respecto a la propiedad lCancel de los botones, la
> situación es exactamente la siguiente:
>
> Si tenemos un TEdit cuyo OnExit devuelve .F., al hacer click sobre el botón,
> el foco NO abandona el TEdit, por lo que nunca se produce el click del
> botón.
>
> Por supuesto se podría hacer un pequeño hack: si quien va a recibir el foco
> es un botón con lCancel = .T., dejar que el TEdit pierda el foco para que se
> produzca el click del botón. Pero esto tiene un "pequeño" problema... en el
> mismo momento en que se pulsa el botón del ratón se produce el cambio de
> foco, pero todavía no se produce el click. El click se produce cuando se
> suelta el botón del ratón sobre el área del botón. Y ahora... ¿qué pasaría
> si el usuario pulsa sobre el botón pero suelta fuera del botón? Pues que ha
> cambiado el foco, saltándose a la torera la validación del edit, pero no se
> llega a disparar el OnClick del botón, y no cancela nada.
>
> Una solución de paso es usar el evento OnLButtonDown del botón. El
> inconveniente es que no verás como se hunde el botón, pero sí funcionaría.
>
> De todos modos, estoy dispuesto a escuchar todas las opiniones y sugerencias
> al respecto. Incluso me gustaría que alguien probara lo que he comentado con
> FW y me dijera qué ocurre.
>
-
- Mensajes: 203
- Registrado: Vie Abr 01, 2005 9:05 am
Preguntas de principiante
Jose F.,
Me olvidaba, siempre se pueden hacer las cosas según Microsoft y evaluar
los valores antes de grabar, cuando se dispare el onClick de grabar
(obvio), lo que queda algo chungo ¿no crees?
Saludos
Jose A. Suarez
Jose F. Gimenez escribió:
> Hola,
>
> vamos a ver... con respecto a la propiedad lCancel de los botones, la
> situación es exactamente la siguiente:
>
> Si tenemos un TEdit cuyo OnExit devuelve .F., al hacer click sobre el botón,
> el foco NO abandona el TEdit, por lo que nunca se produce el click del
> botón.
>
> Por supuesto se podría hacer un pequeño hack: si quien va a recibir el foco
> es un botón con lCancel = .T., dejar que el TEdit pierda el foco para que se
> produzca el click del botón. Pero esto tiene un "pequeño" problema... en el
> mismo momento en que se pulsa el botón del ratón se produce el cambio de
> foco, pero todavía no se produce el click. El click se produce cuando se
> suelta el botón del ratón sobre el área del botón. Y ahora... ¿qué pasaría
> si el usuario pulsa sobre el botón pero suelta fuera del botón? Pues que ha
> cambiado el foco, saltándose a la torera la validación del edit, pero no se
> llega a disparar el OnClick del botón, y no cancela nada.
>
> Una solución de paso es usar el evento OnLButtonDown del botón. El
> inconveniente es que no verás como se hunde el botón, pero sí funcionaría.
>
> De todos modos, estoy dispuesto a escuchar todas las opiniones y sugerencias
> al respecto. Incluso me gustaría que alguien probara lo que he comentado con
> FW y me dijera qué ocurre.
>
Me olvidaba, siempre se pueden hacer las cosas según Microsoft y evaluar
los valores antes de grabar, cuando se dispare el onClick de grabar
(obvio), lo que queda algo chungo ¿no crees?
Saludos
Jose A. Suarez
Jose F. Gimenez escribió:
> Hola,
>
> vamos a ver... con respecto a la propiedad lCancel de los botones, la
> situación es exactamente la siguiente:
>
> Si tenemos un TEdit cuyo OnExit devuelve .F., al hacer click sobre el botón,
> el foco NO abandona el TEdit, por lo que nunca se produce el click del
> botón.
>
> Por supuesto se podría hacer un pequeño hack: si quien va a recibir el foco
> es un botón con lCancel = .T., dejar que el TEdit pierda el foco para que se
> produzca el click del botón. Pero esto tiene un "pequeño" problema... en el
> mismo momento en que se pulsa el botón del ratón se produce el cambio de
> foco, pero todavía no se produce el click. El click se produce cuando se
> suelta el botón del ratón sobre el área del botón. Y ahora... ¿qué pasaría
> si el usuario pulsa sobre el botón pero suelta fuera del botón? Pues que ha
> cambiado el foco, saltándose a la torera la validación del edit, pero no se
> llega a disparar el OnClick del botón, y no cancela nada.
>
> Una solución de paso es usar el evento OnLButtonDown del botón. El
> inconveniente es que no verás como se hunde el botón, pero sí funcionaría.
>
> De todos modos, estoy dispuesto a escuchar todas las opiniones y sugerencias
> al respecto. Incluso me gustaría que alguien probara lo que he comentado con
> FW y me dijera qué ocurre.
>
- ignacio
- Site Admin
- Mensajes: 9447
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Preguntas de principiante
José Luis,
Corrigo el punto 2:
OnCheckState: Si retorna falso se deshabilita el control
Este evento se dispara cada vez que hay un cambio de foco. Si quieres forzar
tu su disparo cuando por ejemplo entras en un formulario deberás llamar al
metodo RequestState() del formulario.
Un saludo,
"Joaquín Martínez" <jmartial@interbook.net> escribió en el mensaje
news:[email=42c413e1@ozsrvnegro.ozlan.local...]42c413e1@ozsrvnegro.ozlan.local...[/email]
> Hola,
>
> 1) Application:lUseReturn := .T. // Usa Return Sí/No
>
>
> 2) OnEnter := { | oSender, oPrevCtl| loquequieras() } // Cuando toma el
> foco OnExit el valid
> o también :
> OnEnter := "MiMétodo"
> Y te creas un método en el mismo form con ese nombre y con los parámetros
> (oSender, oPrevCtl)
>
> 3) Lo del cancel no lo entiendo muy bien, si cancelas no grabas ¿no? pues
> eso no grabes, aunque hay una Property en el Tbutton que puede que sea lo
> que quieres oButton:nModalResult := mrCANCEL
>
> Un Saludo y espero no haberme equivocado mucho,
> Joaquín
>
>
> "José Luis Capel" <joseluis@iaicom.com> escribió en el mensaje
> news:42c40c89$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>> Hola,
>>
>> 1. ¿Donde se indica que se utiliza INTRO además del TAB para moverme
>> entre los diferentes controles.
>>
>> 2. ¿Como se puede emular el famoso WHEN de Clipper (o era F*H)?
>>
>> 3. ¿Como se puede emular la muuuuuy utilizada cláusula CANCEL de F*H en
>> toda la familia de botones?
>>
>> De momento eso...
>>
>> Gracias por la ayuda,
>> José Luis Capel
>
>
Corrigo el punto 2:
OnCheckState: Si retorna falso se deshabilita el control
Este evento se dispara cada vez que hay un cambio de foco. Si quieres forzar
tu su disparo cuando por ejemplo entras en un formulario deberás llamar al
metodo RequestState() del formulario.
Un saludo,
"Joaquín Martínez" <jmartial@interbook.net> escribió en el mensaje
news:[email=42c413e1@ozsrvnegro.ozlan.local...]42c413e1@ozsrvnegro.ozlan.local...[/email]
> Hola,
>
> 1) Application:lUseReturn := .T. // Usa Return Sí/No
>
>
> 2) OnEnter := { | oSender, oPrevCtl| loquequieras() } // Cuando toma el
> foco OnExit el valid
> o también :
> OnEnter := "MiMétodo"
> Y te creas un método en el mismo form con ese nombre y con los parámetros
> (oSender, oPrevCtl)
>
> 3) Lo del cancel no lo entiendo muy bien, si cancelas no grabas ¿no? pues
> eso no grabes, aunque hay una Property en el Tbutton que puede que sea lo
> que quieres oButton:nModalResult := mrCANCEL
>
> Un Saludo y espero no haberme equivocado mucho,
> Joaquín
>
>
> "José Luis Capel" <joseluis@iaicom.com> escribió en el mensaje
> news:42c40c89$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>> Hola,
>>
>> 1. ¿Donde se indica que se utiliza INTRO además del TAB para moverme
>> entre los diferentes controles.
>>
>> 2. ¿Como se puede emular el famoso WHEN de Clipper (o era F*H)?
>>
>> 3. ¿Como se puede emular la muuuuuy utilizada cláusula CANCEL de F*H en
>> toda la familia de botones?
>>
>> De momento eso...
>>
>> Gracias por la ayuda,
>> José Luis Capel
>
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
- ignacio
- Site Admin
- Mensajes: 9447
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Preguntas de principiante
José Alfonso,
El segundo parametro de OnExit() es el control que va a recibir foco. NO
tienes más que controlar que es el botón de cancelar y actuar en
consecuencia.
Un saludo,
"Jose Alfonso Suárez Moreno" <jasm.nospam@chochurro.com> escribió en el
mensaje news:42c42c13$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Jose F.,
>
> Lo hemos hablado en otra ocasión.
>
> Una situación:
>
> Tengo el foco en un TEdit, que tiene su correspondiente onExit que
> controla que tenga contenido.
>
> Quiero que al pulsar determinado botón (o determinados botones) se salte
> el onExit. Ya me preocupare de desactivar el botón de grabar datos si me
> pulsa algunos de los que cancelan los onExit de los TEdit. Esto para mí es
> necesario cuando hago la edición de campos del browse fuera de del TGrid.
>
> Otra situación:
>
> Tengo un formulario donde hay varios TEdit con sus correspondientes
> onExit. Esté donde esté el foco en ese momento (en cualquier TEdit), quier
> salir del formulario (imagina "Código debe tener contenido"), el
> formulario es de los que no tienen systembuttons, y le pongo un botón para
> salir.
>
> Necesito que no se dispare el onExit, por que si no, no me deja salir.
>
>
> Es así de simple.
>
> Saludos,
>
> Jose Alfonso Suarez
>
> Jose F. Gimenez escribió:
>> Hola,
>>
>> vamos a ver... con respecto a la propiedad lCancel de los botones, la
>> situación es exactamente la siguiente:
>>
>> Si tenemos un TEdit cuyo OnExit devuelve .F., al hacer click sobre el
>> botón, el foco NO abandona el TEdit, por lo que nunca se produce el click
>> del botón.
>>
>> Por supuesto se podría hacer un pequeño hack: si quien va a recibir el
>> foco es un botón con lCancel = .T., dejar que el TEdit pierda el foco
>> para que se produzca el click del botón. Pero esto tiene un "pequeño"
>> problema... en el mismo momento en que se pulsa el botón del ratón se
>> produce el cambio de foco, pero todavía no se produce el click. El click
>> se produce cuando se suelta el botón del ratón sobre el área del botón. Y
>> ahora... ¿qué pasaría si el usuario pulsa sobre el botón pero suelta
>> fuera del botón? Pues que ha cambiado el foco, saltándose a la torera la
>> validación del edit, pero no se llega a disparar el OnClick del botón, y
>> no cancela nada.
>>
>> Una solución de paso es usar el evento OnLButtonDown del botón. El
>> inconveniente es que no verás como se hunde el botón, pero sí
>> funcionaría.
>>
>> De todos modos, estoy dispuesto a escuchar todas las opiniones y
>> sugerencias al respecto. Incluso me gustaría que alguien probara lo que
>> he comentado con FW y me dijera qué ocurre.
>>
El segundo parametro de OnExit() es el control que va a recibir foco. NO
tienes más que controlar que es el botón de cancelar y actuar en
consecuencia.
Un saludo,
"Jose Alfonso Suárez Moreno" <jasm.nospam@chochurro.com> escribió en el
mensaje news:42c42c13$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Jose F.,
>
> Lo hemos hablado en otra ocasión.
>
> Una situación:
>
> Tengo el foco en un TEdit, que tiene su correspondiente onExit que
> controla que tenga contenido.
>
> Quiero que al pulsar determinado botón (o determinados botones) se salte
> el onExit. Ya me preocupare de desactivar el botón de grabar datos si me
> pulsa algunos de los que cancelan los onExit de los TEdit. Esto para mí es
> necesario cuando hago la edición de campos del browse fuera de del TGrid.
>
> Otra situación:
>
> Tengo un formulario donde hay varios TEdit con sus correspondientes
> onExit. Esté donde esté el foco en ese momento (en cualquier TEdit), quier
> salir del formulario (imagina "Código debe tener contenido"), el
> formulario es de los que no tienen systembuttons, y le pongo un botón para
> salir.
>
> Necesito que no se dispare el onExit, por que si no, no me deja salir.
>
>
> Es así de simple.
>
> Saludos,
>
> Jose Alfonso Suarez
>
> Jose F. Gimenez escribió:
>> Hola,
>>
>> vamos a ver... con respecto a la propiedad lCancel de los botones, la
>> situación es exactamente la siguiente:
>>
>> Si tenemos un TEdit cuyo OnExit devuelve .F., al hacer click sobre el
>> botón, el foco NO abandona el TEdit, por lo que nunca se produce el click
>> del botón.
>>
>> Por supuesto se podría hacer un pequeño hack: si quien va a recibir el
>> foco es un botón con lCancel = .T., dejar que el TEdit pierda el foco
>> para que se produzca el click del botón. Pero esto tiene un "pequeño"
>> problema... en el mismo momento en que se pulsa el botón del ratón se
>> produce el cambio de foco, pero todavía no se produce el click. El click
>> se produce cuando se suelta el botón del ratón sobre el área del botón. Y
>> ahora... ¿qué pasaría si el usuario pulsa sobre el botón pero suelta
>> fuera del botón? Pues que ha cambiado el foco, saltándose a la torera la
>> validación del edit, pero no se llega a disparar el OnClick del botón, y
>> no cancela nada.
>>
>> Una solución de paso es usar el evento OnLButtonDown del botón. El
>> inconveniente es que no verás como se hunde el botón, pero sí
>> funcionaría.
>>
>> De todos modos, estoy dispuesto a escuchar todas las opiniones y
>> sugerencias al respecto. Incluso me gustaría que alguien probara lo que
>> he comentado con FW y me dijera qué ocurre.
>>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com