Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-06-2006
pjjorda pjjorda is offline
Miembro
 
Registrado: jul 2005
Posts: 34
Poder: 0
pjjorda Va por buen camino
¿como abortar ejecución de eventos?

Saludos,
uso Delphi7.
exposición:
1)tengo un Dbedit y en el evento Onexit verifico la integridad del dato introducido y varias cosas más.
2)en el evento Onkeydown del formulario controlo la pulsación de varias teclas de función que hacen varias cosas.
3)si pulso la tecla F4, primero corre el Onkeydown en el que mando el foco a otro Dbedit y luego el Onexit del Dbedit anterior.

¿que poner en el onkeydown para que no se llegue a ejecutar el onexit?

Seguramente es una pregunga chorra, pero favor de contestarme.
Gracias por anticipado.
Responder Con Cita
  #2  
Antiguo 06-06-2006
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 23
maeyanes Va por buen camino
Una opción sería:

Código Delphi [-]
procedure TForm1.OnKeyDown({...});
begin
  // ...
  // DBEdit que no quieres que ejecute el evento OnExit...
  DBEdit.OnExit := nil
end;

Claro, que luego tendrías que volver a asignar el manejador de evento al DBEdit para que vuelva a funcionar como se espera.

Otra opción sería la de tener un condicional en el evento OnExit, el cual se ejecute solo cuando ocurra algo que desees:

Código Delphi [-]
priocedure TForm1.DBEditOnExit(Sender: TObject);
begin
  if TalCondicion then
  begin
    // Código que desees que se ejecute o no de acuerdo a la condición...
  end
end;

Espero que te sirva de algo...



Saldos...
Responder Con Cita
  #3  
Antiguo 06-06-2006
pjjorda pjjorda is offline
Miembro
 
Registrado: jul 2005
Posts: 34
Poder: 0
pjjorda Va por buen camino
Gracias

Gracias por tu prontísima respuesta.
La segunda opción es la que estoy usando hasta ahora.

La primera opción me parece más práctica en principio,
pero ¿como se vuelve a activar el onexit?

Yo esperaba que hubiera una especie de Abort o Exit para cancelar los eventos pendientes.
Gracias.
Responder Con Cita
  #4  
Antiguo 06-06-2006
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 23
maeyanes Va por buen camino
Para volver a asignar un evento por código:

Código Delphi [-]
DBEdit.OnExit := DBEditOnExit;

Ahora, si bien existe un exception Abort, no se si se pueda usar para estos fines...

También tienes el uso del Exit que se puede usar con la segunda forma que te comente:

Código Delphi [-]
procedure TForm1.DBEditOnExit(Sender: TObject);
begin
  if TalCondicion then
    Exit;
  // Código que deseas ejecutar si no se comple la condición de salida...
end;

Saludos...
Responder Con Cita
  #5  
Antiguo 06-06-2006
pjjorda pjjorda is offline
Miembro
 
Registrado: jul 2005
Posts: 34
Poder: 0
pjjorda Va por buen camino
Gracias de nuevo,

al ejecutar DBEdit1.OnExit := DBEdit1OnExit;
obtengo:
[Error] : Undeclared identifier: 'DBEDIT11ONEXIT'
algo no hago bien.
Responder Con Cita
  #6  
Antiguo 06-06-2006
pjjorda pjjorda is offline
Miembro
 
Registrado: jul 2005
Posts: 34
Poder: 0
pjjorda Va por buen camino
He creado una variable tipo Dbedit, a la que copio Dbedit1 al abrir el form.
y luego le paso a dbedit1 el evento Onexit cuando es necesario.

Repito muchas gracias Maeyanes.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Assignar eventos durante ejecución miguelml Varios 2 09-05-2006 10:12:53
Eventos en componentes creados en tiempo de ejecucion joumont OOP 3 27-12-2005 14:48:23
Como Abortar mi APP sin q aparescan Mens de ERROR pcicom OOP 5 22-03-2005 09:22:13
Abortar un Ciclo While jmedina Varios 2 08-03-2005 20:48:17
abortar inmediatamente acrophet Varios 4 20-10-2003 18:07:18


La franja horaria es GMT +2. Ahora son las 09:35:54.


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
Copyright 1996-2007 Club Delphi