Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-04-2011
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 935
Poder: 22
ElDioni Va por buen camino
MouseDown en DbGrid no funciona como espero

Buenos días gente del foro,

estoy haciendo un programa y me encuentro conque necesito lanzar un código al hacer MouseDown en un DBGrid pero, ponga lo que ponga, no hace nada a no ser que pulse sobre la barra de titulos del DBGrid o en el espacio, a la derecha, dentro de la grilla, que ya no contiene datos de la tabla (la parte que se queda en blando a partir de la última columna de datos de la grilla), no se porque ocurre esto o si hay alguna forma de decirle al DBGrid que actue el MouseDown en cualquier lugar que se pulse.

Espero haberme explicado con suficiente claridad y también que puedan ayudarme con este tema.

Gracias y saludos.
Responder Con Cita
  #2  
Antiguo 12-04-2011
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.671
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Me ha parecido entender que sólo funciona cuando has pinchado en el dbgrid, ocurre porque si el dbgrid no tiene el foco entonces no te hará caso, evidentemente, y estará recogiéndolo el evento del form. Para ello puedes poner en el evento del form que le dé el foco al dbgrid cuando detecte el "mousedonw" del ratón.
Responder Con Cita
  #3  
Antiguo 12-04-2011
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Vaya, nunca había notado esto, sí que es raro. Responde al MouseUp pero no al MouseDown.

// Saludos
Responder Con Cita
  #4  
Antiguo 12-04-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.015
Poder: 22
oscarac Va por buen camino
Ghost in the Machine
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #5  
Antiguo 12-04-2011
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Revisando el código de la VCL veo que es el comportamiento por diseño. El método MouseDown de TCustomDBGrid sólo llama al método heredado de TCustomGrid en los casos señalados.

Tendrías que redefiir el método MouseDown para poder acceder al evento.

// Saludos
Responder Con Cita
  #6  
Antiguo 12-04-2011
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 935
Poder: 22
ElDioni Va por buen camino
Gracias a todos por sus respuestas,
de momento voy a probar con la solución que propone Casimiro y a ver que pasa.
Les mantengo informados, Gracias de nuevo.

Saludos
Responder Con Cita
  #7  
Antiguo 12-04-2011
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Eso no va a servir, porque quien recibe el evento no es el formulario. No es una cuestión de foco, un MouseDown debe, por si sólo, poner el foco en el control. El punto, como dije, es que, el evento MouseDown del TCustomDBGrid nunca llama al método heredado y, por ende, nunca se llama al evento del usuario.

// Saludos
Responder Con Cita
  #8  
Antiguo 12-04-2011
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 935
Poder: 22
ElDioni Va por buen camino
Hola otra vez,

efectivamente roman tiene razón, esa solución que proponía Casimiro me ha dejado igual que estaba, no me lanza el código que quería, me gustaría probar con tu solución roman pero en cuanto a redifinir metodos me temo que estoy más verde que la almendra en Junio.
Si te encuentras con animo de echarme una mano te lo agradecería.

Saludos.
Responder Con Cita
  #9  
Antiguo 12-04-2011
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.671
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Cita:
Empezado por ElDioni Ver Mensaje
Hola otra vez, efectivamente roman tiene razón, esa solución que proponía Casimiro me ha dejado igual que estaba, no me lanza el código que quería,[..]
quien tiene boca, se equivoca
Responder Con Cita
  #10  
Antiguo 12-04-2011
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 24
Caro Va por buen camino
Cita:
Empezado por ElDioni Ver Mensaje
................me gustaría probar con tu solución roman pero en cuanto a redifinir metodos me temo que estoy más verde que la almendra en Junio.
Hola ElDioni, yo tampoco se mucho de eso, pero creo que tendrías que desprotejer tu dbgrid y hacer esto:

Código Delphi [-]
type
  TDBGrid =  class(DBGrids.TDBGrid)
      procedure MouseDown(Button: TMouseButton; Shift: TShiftState;
      X, Y: Integer); override;
  end;

  TForm1 = class(TForm)
  ..................................
  ..................................

procedure TDBGrid.MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  Form1.Label1.Caption := 'algo'; //digamos que queremos mostrar algo en un label
  inherited MouseDown(Button, Shift, X, Y);
end;

Si me he equivocado, roman nos va a corregir .

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
Duda con con el evento MouseDown NEG1414 C++ Builder 3 05-10-2008 15:00:40
Espero me ayuden BaRdO JAVA 0 23-08-2007 04:46:31
autorefresh no funciona en query y dbgrid ilichhernandez Conexión con bases de datos 6 08-11-2005 19:32:00
Espero no lleguemos a esto :s __cadetill Humor 7 21-11-2003 11:03:19


La franja horaria es GMT +2. Ahora son las 02:29:14.


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