I created an extend in a class to set the column type for devexpress's cxgrid grid. There is no problem with typing, but when I press the key below, the grid simply disappears. After disappearing, it will only appear if you press a key above or below, or hover over it.
The Code below is executed twice, with column 3 and 4 being self.
Self.PropertiesClassName := 'TcxMaskEditProperties';
Self.PropertiesClass := TcxMaskEditProperties;
with TcxMaskEditProperties(Self.Properties) do begin
EditMask := '!90:00:00;1;_';//MASK_TIME;
DisplayFormat := '!90:00:00;1;_';//MASK_TIME;
end;
Screen disappears and only returns after pressing key below or above or mouse moving
I think your problem is being caused by someting you have not shown us in your question. The reason I say that is that I have made a minimal, self-contained, project - see below - which does not seem to exhibit the problem you show.
As you'll see, the cxGrid is fed from a TClientDataSet which is created and populated at run-time, so it does not need any external source of data. More importantly, the cxGrid is also created and set up entirely in code, so none of its settings is stored in the .DFM file and so you can set extactly what properties of the cxGrid and its components are changed from their default, as-created, values. A benefit of creating the grid this way is that its behaviour isn't affected by the settings of properties buried levels-deep in the Object Inspector.
To try the code out
create a new project and edit its main form as shown in the code
run the program and click in the Time cell of the first row in the grid
edit the value in the Time cell and
press the Down button.
What happens for me on step 4 is that the change to the time cell is saved to the dataset, exactly as it should be and the focus moves to the time cell in the row below, again exactly as it should do.
So, as there is not anything obviously wrong with my code, the fact that you get a different result with your project must mean that it is being caused by something else in your project. Of course, if you can find a way of changing my project so that it misbehaves similarly to yours, that would suggest a bug in the Devex code which I imagine they would be able to find and fix.
Code