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.
>>