Hola, proba con esto:
Código Delphi
[-]
procedure Tfrm.cxgrdDBTableView1ColumnaPropertiesValidate( Sender: TObject; var
DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean );
begin
if ( DisplayValue = null ) or ( DisplayValue >40 ) then
begin
Error := true;
DisplayValue := 0;
end;
end;
Esto hace que el valor de la celda cambie, al usar DisplayValue:=0
Error:=True hace que no salga de la columna.
La columna la tengo definida en el grid como "CurrencyEdit" en Properties.
Creo que para que salga del modo edición hay que hacer un post ó cancel en la tabla/query.