Pues tienes razón. No lo había probado con el TDBGrid normal.
Resulta que tengo un DBGrid mínimamente modificado para poder hacer selecciones múltiples en el DBGrid con Shift. Esto ya lo comenté en su día
aqui.
Para ello me he tenido que derivar mi propio DBGrid que me permite MultiSelección.
Aquí tienes el código :
Código Delphi
[-]unit DBMultiSelectGrid;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids;
type
TDBMultiSelectGrid = class(TDBGrid)
private
FOnMouseDown: TMouseEvent;
protected
procedure MouseDown(Button: TMouseButton; Shift: TShiftState;
X, Y: Integer); override;
published
property Row;
property OnMouseDown read FOnMouseDown write FOnMouseDown;
end;
procedure Register;
implementation
procedure TDBMultiSelectGrid.MouseDown(Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Assigned(FOnMouseDown) then
FOnMouseDown(Self, Button, Shift, X, Y);
inherited MouseDown(Button, Shift, X, Y);
end;
procedure Register;
begin
RegisterComponents('Data Controls', [TDBMultiSelectGrid]);
end;
end.
Como podrás observar, redefino el evento OnMouseDown. De esta manera funciona. No sabría ahora mismo como hacerlo sin derivar tu propio componente DBGrid particular como lo he indicado.
Por otro lado me he dado cuenta con tu indicación que con el DBGrid normal y estandar no funciona.
Saludos.
