Cita:
Empezado por Chris
¿Entonces hay un condicional o algo por el estilo, que decide no transmitir el evento cuando el Mouse está sobre las celdas de datos? Esto lo digo por lo que anteriormente ha dicho el compañero
|
El código del método de MouseDown en TControl es éste:
Código Delphi
[-]
procedure TControl.MouseDown(Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Assigned(FOnMouseDown) then FOnMouseDown(Self, Button, Shift, X, Y);
end;
O sea, que a nivel de TControl, es que se llama al evento definido por el usuario.
Ahora, si pones un punto de ruptura en el código de TCustomDBGrid.MouseDown, notarás que, no importa donde coloques el cursor del ratón sobr el DBGrid, la ejecución se detiene, indicando que el control recibió el evento.
Sin emabargo, si sigues examinando el código, verás que las llamadas a
Código Delphi
[-]
inherited MouseDown(...);
están bajo algunos condicionales, a diferencia de MouseUp, donde la llamada a
ocurre sin ninguna condición.
Al no llamarse al MouseDown de TControl, nunca se llama al evento definidio por el usuario. Y de ahí el comportamiento que describe ElDioni.
// Saludos