Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Como puedo hacer esto ? (https://www.clubdelphi.com/foros/showthread.php?t=71244)

cmfab 09-12-2010 14:40:22

Como puedo hacer esto ?
 
Hola a todos. me explico tengo un TEdit por ejemplo en un form y un botón de comando para cerrar dicho formulario. en el evento onexit del TEdit valido su contenido, si no es correcto devuelvo el focus a dicho control. es decir que siempre el focus va a estar en el TEdit hasta que se ingrese un valor correcto. sucede que si quiero cerrar la ventana presionando el botón de comando "Cerrar", como es logico se ejecuta el envento onexit del TEdit y no puedo Cerrar la ventana para descartar los datos introducidos en el TEdit. Existe alguna manera de poder controlar si se hace click en otro control que no sea el TEdit para obviar el evento Onexit del mismo y poder presionar el botón para cerrar el form. Muchas gracias a todos

marcoszorrilla 09-12-2010 15:16:41

Si estás dentro del Tedit hagas lo que hagas al salir se ejecutará su evento OnExit.

No entiendo si quieres que estando en otro control se valide el TEdit si tiene datos o no antes de salir.............?

Un Saludo.

cmfab 09-12-2010 15:23:59

gracias marco por tu repuesta, en realidad se puede hacer como dices de validar al presionar el boton. sucede que puede pasar que hayan muchos TEdit y pensé que se podian validar en su evento onexit para devolver el focus, pero tambien dar la oportunidad de descartar la acción presionando el boton de cerrar el form. no se si a alguien se le ocurre otra idea. gracias

marcoszorrilla 09-12-2010 15:29:44

Eso es lo que te preguntaba. Entonces lo mejor es que pongas la validación en el evento OnCloseQuery del Formulario:

Código Delphi [-]
canClose:=False;
  if Application.MessageBox('¿Seguro que desea abandonar?','Atención',mb_OkCancel +
  mb_IconQuestion)= idOk then
  begin
  canClose:=True;

Aqui en vez de la pregunta iría tu validación, si es correcta pones CanClose a True en caso contrario el formulario no se cerrará.

Espero que sea eso lo que pides.

Un Saludo.

cmfab 09-12-2010 16:04:09

Gracias una vez mas. usaré tu propuesta. saludos


La franja horaria es GMT +2. Ahora son las 08:16:19.

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