Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-07-2011
EgyEgy EgyEgy is offline
Miembro
NULL
 
Registrado: jun 2011
Posts: 15
Poder: 0
EgyEgy Va por buen camino
¿como cachar un evento?

Nuevamente YO dando "lata".

tengo un objeto de Edición y hago una serie de validaciones cuando me voy salir (Exit) de ese componente.

Quiero saber si ese Exit es por que di un click a otro boton.

¿como puedo hacer una condicion en la que indique si di Click a otro componente?
Responder Con Cita
  #2  
Antiguo 12-07-2011
Avatar de Crandel
[Crandel] Crandel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Parana, Argentina
Posts: 1.475
Poder: 23
Crandel Va por buen camino
y por que no ejecutas la acción en el evento OnClick del otro componente ?

cual es el efecto que quieres lograr ?
__________________
[Crandel]
Responder Con Cita
  #3  
Antiguo 12-07-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Coincido totalmente con Crandel, que lo lógico es ejecutar la acción en el evento OnClick del componente.

Pero si aún querés saber en el evento OnExit del TEdit si presionó determinado TButton, podés hacer por ejemplo:
Código Delphi [-]
procedure TForm1.Edit1Exit(Sender: TObject);
begin
  if ActiveControl.Name = 'btnSalir' then
     Close;
end;

Pero como sugirió Crandel, es más natural hacer:
Código Delphi [-]
procedure TForm1.btnSalirClick(Sender: TObject);
begin
  Close;
end;


Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #4  
Antiguo 12-07-2011
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Creo se puede hacer mejor.

Si usas controles de Acceso a datos (DBEdit, DBCombo, DBxxx) suelen tener el evento OnValidate y es justo ahí donde puedes hacer esas validaciones.

Si no usas controles DBxxxx Siempre puedes usar el evento BeforePost del dataset.

La razón de no fiarte del evento OnExit es precisamente porque puede NO ocurrir. Si usas un TSpeedButton para guardar, eso no hace saltar el evento OnExit, por ejemplo.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 12-07-2011 a las 10:01:37.
Responder Con Cita
  #5  
Antiguo 12-07-2011
EgyEgy EgyEgy is offline
Miembro
NULL
 
Registrado: jun 2011
Posts: 15
Poder: 0
EgyEgy Va por buen camino
Me explico

En el objeto Tdbedit valido que lo que haya capturado sea un número y que ademas sea mayor al valor de otro objeto adjunto. Pero existe un caso que cuando doy CLICK a un boton lo calcule de forma automatica.

Es ahi cuando por default se ejecuta la validacion dentro del tdbedit y claro me marca un error por que el valor de este es vacio.


Espero haberme hecho entender.

Gracias a todos por su cooperacion.
Responder Con Cita
  #6  
Antiguo 12-07-2011
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Cita:
Empezado por EgyEgy Ver Mensaje
Quiero saber si ese Exit es por que di un click a otro boton.
Hola egyegy, con ActiveControl como te ha indicado ecfisa.

Código Delphi [-]
procedure xxxx.DBEdit5Exit(Sender: TObject);
begin
 if ActiveControl=ButtonCalculo then
  showmessage('se ha presionado el boton xxx');
end;

Cita:
Empezado por EgyEgy Ver Mensaje
En el objeto Tdbedit valido que lo que haya capturado sea un número y que ademas sea mayor al valor de otro objeto adjunto. Pero existe un caso que cuando doy CLICK a un boton lo calcule de forma automatica.

Es ahi cuando por default se ejecuta la validacion dentro del tdbedit y claro me marca un error por que el valor de este es vacio.
En ese caso, no te sería suficiente preguntar si tu dbedit esta vacío.

Código Delphi [-]
procedure xxx.DBEdit5Exit(Sender: TObject);
begin
 if Trim(DBEdit.Text)<>'' then
   //si es diferente de vacío hacemos los calculos  
end;

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
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
Como cachar el error del MaskEdit? flystar Varios 1 01-05-2010 15:54:35
Como Cachar 3 llamadas por telefono al mismo tiempo ???? AGAG4 Varios 18 27-01-2010 21:20:13
Cachar el evento minimizar del form darkerbyte Varios 3 27-01-2009 16:55:56
Como Cachar Evento al momento de copiar X archivo en Windows ???? AGAG4 Windows 2 15-08-2008 00:21:03
Como Cachar Buffer en un dbGrid???? AGAG4 Varios 3 14-02-2005 21:57:23


La franja horaria es GMT +2. Ahora son las 04:55:42.


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