Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   condicionar un procedimiento dentro de otro procedimiento (https://www.clubdelphi.com/foros/showthread.php?t=67967)

yossi 16-05-2010 21:06:21

condicionar un procedimiento dentro de otro procedimiento
 
hola necesito ayuda con esto y espero no molestarles ya que he preguntado mucho

tengo un edit en el que tengo el evento onexit activado, en ese evento lo que hago es que cuando se salga del edit me muestre un mensaje que me obligue a ingresar ese datos, por otro lago tengo un boton que se encarga de cerrar el formulario

la pregunta es como hacer para que cuando haga click en el boton, el evento onexit del edit no funcione, es decir que pueda cerrar el formulario sin que me muestre el mensaje de que tengo que ingresar ese dato en el edit.

intente con este codigo pero no funciona, y estoy segura de aque esta mal pero es que no se como hacerlo

Código Delphi [-]procedure tform1.edit1exit(sender:tobject) begin if boton1click=true then edit1exit=false; end;


tambien lo intente de la misma manera desde el procedimiento del boton pero tampoco

yapt 16-05-2010 22:26:41

Pues es que el problema es que el evento onExit del Edit, se produce antes del evento onClick del botón.

Tendrás que idear un sistema para poder rodear el problema. Por ejemplo (se me ocurre), comprobar unicamente el valor del edit, SI hay un valor en el mismo. Poder vaciarlo de valor con la tecla ESCAPE.... Desactivar la comprobación si el ratón "entra" dentro del botón (onMouseOver) -aunque este no te ayuda si el usuario lo hace todo con teclado-.

No sé.... este es un tema que siempre es complicado. Yo, para no encontrarme estas cosas, prefiero (si es posible) chequear datos al final.

Suerte.

MODERADORES: A mi me pasa lo mismo que a Yossi cuando introduzco código (y lo marco como tal), pero antes de enviarlo le doy a "Vista Previa de Mensaje". El formato se pierte...

ecfisa 17-05-2010 00:05:18

Hola.

Hola probá con esta línea al inicio del evento OnExit del Edit.

Código:

procedure TForm1.Edit1Exit(Sender: TObject);
begin
  if ActiveControl.Name = 'Button1' then Exit;
  ...
  ...
  ...
end;

Saludos.

yossi 17-05-2010 01:56:31

gracias a ambos por responder

yapt: podria chequear los datos al final pero en ese formulario se añaden muchos datos y seria molesto que despues de haberlos llenado todos te diga que ya estaba registrado por eso lo chequeo en seguida

ecfisa: intente tu solucion pero no funciona, me sigue mostrando en mensaje que coloque para que ingrese ese dato obligatoriamente

editado

ya se soluciono el problema, con la ayuda de efisa, lo coloque como me dijiste pero en lugar de exit llame al procedimiento de buttonclick, no se porque con exit no me funciono, pero muchas gracias por tu ayuda y por la de yapt

ecfisa 17-05-2010 03:13:18

Hola yossi.

Es extraño que no te funcione el Exit, a mí en particular esa línea me funcionó en todos los casos..

El nombre de tu TButton, es 'TButton1' ?

Saludos.

yossi 17-05-2010 03:16:21

en un princincipio era "Button1" pero lo cambie a "cerrar" y de ninguna forma funciono, de todas maneras tu ayuda me sirvio de mucho y ya funciona como quiero, de nuevo gracias

ecfisa 17-05-2010 03:21:15

De nada yossi, me alegro que te haya servido de algo.

Saludos.

yapt 17-05-2010 10:47:14

De nada (la verdad es que poco pude ayudar).

Pero también estoy con Yossi. Creo que su línea de código debería de funcionar exactamente igual que si llamas al buttonclick del botón. Incluso yo lo preferiria.

Saludos.


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

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