hola a todos..
tengo la siguiente inquietud es posible controlar el ingreso de solo dos Decimales en un DBGrid???
o controlar q solo se ingrese un punto en el DBgrid

les cuenta la historia..
primero realizo el ingreso de un nuevo registro usando los Edit con el siguiente codigo puedo controlar q al ingresar el punto solo permita ingresar dos decimales:
Código Delphi
[-]
procedure TUnit_Main.Edit21KeyPress(Sender: TObject; var Key: Char);
Var i: Integer;
pos: Cardinal;
begin
i:=0;
if ( StrScan('0123456789.'+chr(7)+chr(8), Key) = nil ) then Key := #0;
if key = '.' then key := '.';
for i := 1 to length(Edit1.Text) do
if ( copy(Edit1.Text,i,1) = '.' ) and not ( StrScan('.', Key) = nil ) then Key := #0;
with Sender as TEdit do
begin
pos := System.Pos('.', Text);
if not LongBool(Pos) then Dec(Pos);
ReadOnly := not (Key in ['0'..'9', '.', #8]) or
(Pos <> $FFFFFFFF) and (Key = '.') or
((Key <> #8) and (Pos < (SelStart - 1)));
end;
funciona a la perfeccion..
entonces guardo lo registros y luego si quiero modificarlos utilizo un Dbgrid (conectado a un DataSource y este a un Query)
que me trae los datos.
el problema radica en q si yo al modificar el dato ingreso por ejemplo 23.22.33 el grid muestra
"23.22.33" is not a valid floating point value for field "COLUMNA1"
no se si se puede ya sea capturar el error y mostrarlo de otra manera.
o validar el grid para que prohiba el ingreso de mas de un . (punto) en la celda.







