TMSFMXGrid MouseDown/UP order reverse

I just upgraded TMS Pack for FireMonkey from v2.3 to v3.2 (Using XE5). Found TTMSFMXGrid exist a big bug. 


Grid can be edited. DirectEdit = True, Operation list as below,

1. Load data into TTMSFMXGrid,
2. Click one cell, it would show editor. 
3. While it is editing, Mouse Click another cell, then trigger wrong events

// Click a cell and edit,
[ 20/07/2017 19:55:35.002 ] >>> frmTest.gridTestMouseDown - Col=2, Row=2 : V ***** Enter ***** V 
[ 20/07/2017 19:55:35.004 ] <<< frmTest.gridTestMouseDown - Col=2, Row=2 : ^ ***** Exit ***** ^ Elapsed time : 0 msec
[ 20/07/2017 19:55:35.006 ] >>> frmTest.TransactionFieldIsReadOnly - Col=2, Row=2 : V ***** Enter ***** V 
[ 20/07/2017 19:55:35.009 ] <<< frmTest.TransactionFieldIsReadOnly - Col=2, Row=2 : ^ ***** Exit ***** ^ Elapsed time : 0 msec
[ 20/07/2017 19:55:35.011 ] >>> frmTest.TransactionFieldIsReadOnly - Col=2, Row=2 : V ***** Enter ***** V 
[ 20/07/2017 19:55:35.014 ] <<< frmTest.TransactionFieldIsReadOnly - Col=2, Row=2 : ^ ***** Exit ***** ^ Elapsed time : 0 msec
[ 20/07/2017 19:55:35.121 ] >>> frmTest.gridTestMouseUp - Col=2, Row=2 : V ***** Enter ***** V 
[ 20/07/2017 19:55:35.124 ] <<< frmTest.gridTestMouseUp - Col=2, Row=2 : ^ ***** Exit ***** ^ Elapsed time : 1 msec

//Click another cell, V3.2 would do sth for edted cell , but V2.2 would trigger MouseDown first

[ 20/07/2017 19:55:43.952 ] >>> frmTest.gridTestCellEditValidateData : V ***** Enter ***** V 
[ 20/07/2017 19:55:43.957 ] <<< frmTest.gridTestCellEditValidateData : ^ ***** Exit ***** ^ Elapsed time : 0 msec
[ 20/07/2017 19:55:43.962 ] >>> frmTest.gridTestCellEditSetData : V ***** Enter ***** V 
[ 20/07/2017 19:55:43.968 ] <<< frmTest.gridTestCellEditSetData : ^ ***** Exit ***** ^ Elapsed time : 0 msec
[ 20/07/2017 19:55:43.978 ] >>> frmTest.gridTestCellEditDone : V ***** Enter ***** V 
[ 20/07/2017 19:55:43.986 ] <<< frmTest.gridTestCellEditDone : ^ ***** Exit ***** ^ Elapsed time : 0 msec

///// here is the bug, grid always trigger MouseUp first, then MouseDown, it would let cursor follow mouse until next Click.

[ 20/07/2017 19:55:44.076 ] >>> frmTest.gridTestMouseUp - Col=1, Row=1 : V ***** Enter ***** V 
[ 20/07/2017 19:55:44.078 ] <<< frmTest.gridTestMouseUp - Col=1, Row=1 : ^ ***** Exit ***** ^ Elapsed time : 1 msec
[ 20/07/2017 19:55:44.128 ] >>> frmTest.gridTestMouseDown - Col=1, Row=1 : V ***** Enter ***** V 
[ 20/07/2017 19:55:44.130 ] <<< frmTest.gridTestMouseDown - Col=1, Row=1 : ^ ***** Exit ***** ^ Elapsed time : 0 msec


Are there any options to affect this?

Thanks,

I cannot reproduce this. Was retested with a default grid on the form and the code:



procedure TForm3.FormCreate(Sender: TObject);
begin
  TMSFMXGrid1.Options.Mouse.DirectEdit := true;
end;

procedure TForm3.TMSFMXGrid1CellEditSetData(Sender: TObject; ACol,
  ARow: Integer; CellEditor: TFmxObject; var CellString: string);
begin
  outputdebugstring(pchar('cell set data'));
end;

procedure TForm3.TMSFMXGrid1CellEditValidateData(Sender: TObject; ACol,
  ARow: Integer; CellEditor: TFmxObject; var CellString: string;
  var Allow: Boolean);
begin
  outputdebugstring(pchar('cell validate data'));
end;

procedure TForm3.TMSFMXGrid1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Single);
begin
  outputdebugstring(pchar('mousedown'));
end;

procedure TForm3.TMSFMXGrid1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Single);
begin
  outputdebugstring(pchar('mouseup'));
end;

and I always see first OnMouseDown and then OnMouseUp