I have a handler assigned to Grid.OnCellEditDone(). The cell has a TSpinBox as the editor.
When changing the spinbox value and pressing Enter or Tab to exit editing, the OnCellEditDone() fires and TSpinBox(CellEditor).Value is correctly available.
When changing the spinbox value and (left)clicking another cell, the OnCellEditDone() fires but the TSpinBox(CellEditor).Value is set to zero.
We have investigated this here but are not able to reproduce this. When clicking another cell, or pressing Enter / Tab, the OnCellEditDone behaves correctly and the SpinBox editor contains the correct value. Please provide a sample or additional instructions on how to reproduce this issue.
We have investigated this here and this seems to be an issue when the TSpinBox is closing, after changing the value with the keyboard. Changing the value with the left/right buttons will increment the value directly. The value is updated upon changing the focus, but in the grid the value is updated after the OnCellEditDone event is triggered, to make sure the editor is still available in this event. We will investigate a possible workaround for this issue, but please note that the behavior of the value only updating after changes with the keyboard in a TSpinBox control is, in our opinion, not the correct sequence and thus an issue in TSpinBox.
An alternative solution is to convert the text value (which is correctly updated in both keyboard changes and left/right button clicks):