Hola Rofocale.
Según entiendo la consigna es, que permitas ingresar números, el separador coma para miles y
el punto para decimales. Limitandodose estos últimos al número de dos.
Te pongo un código que no intenta ser un analizador de expresiones. Es sólo para aproximarte una
idea, las demás comprobaciónes las podés implementar.
No comprueba si ingresas dos puntos o cinco comas. Sólo verifica que no pongas un punto o coma
al iniciar, y tál como te piden, admite sólo dos decimales luego del primer separador decimal.
Código Delphi
[-]
procedure TForm1.EditKeyPress(Sender: TObject; var Key: char);
var
NDec: integer;
begin
NDec:= 0;
with Sender as TEdit do
begin
if (Pos('.', Text+Key) > 1) then NDec := Length(Text+Key) - Pos('.',Text+Key);
if (Key in ['.',',']) and (Length(Text+Key) = 1) then
NDec:= 3; if (not (Key in[',','.','-','0'..'9']) or (NDec > 2)) and (Key<>#8) then
begin
Key:= #0;
MessageBeep(MB_ICONERROR);
SetFocus;
end;
end
end;
Saludos.
