The initial 0 Value can be prevented by setting UseNullString
to true.
The input of unwanted characters can handled by
procedure TForm1.ViewEditKeyPress(Sender: TcxCustomGridTableView; AItem: TcxCustomGridTableItem;
AEdit: TcxCustomEdit; var Key: Char);
begin
if AItem = TheColumnWithSpinEdit then
if (not (Key in ['0'..'9',#8])) then Key := #0;
end;