Buen día.
Quisiera saber si me pueden colaborar, tenía este código que encontre en un foro en el evento keypress de un edit y funciona correctamente me valida que solo deje ingresar dos decimales y que si escribo un punto lo modifique y lo cambie por una coma, como necesito realizar esta validación para varios edits quise hacerlo como un procedimiento, pero al hacerlo no me realiza la validación correctamente (no me cambia el punto por la coma y no lo muestra en el edit).
Alguien que me pueda ayudar a corregir o decirme el motivo por el cual no me funciona. Gracias.
Código Delphi
[-]
procedure ValidarPorcentajeKeyPressEdit(Caracter: Char;Edit:TrDBEdit;Sender: TObject);
var
pos: Cardinal;
begin
i:=0;
if ( StrScan('0123456789.,'+chr(7)+chr(8)+#13, Caracter) = nil ) then Caracter := #0;
if (Caracter = '.') or (Caracter = ',') then Caracter := ',';
for i := 1 to length(Edit.Text) do
if ( copy(Edit.Text,i,1) = ',' ) and not ( StrScan(',', Caracter) = nil ) then Caracter := #0;
with Sender as TrDBEdit do
begin
pos := System.Pos(',', Text);
if not LongBool(Pos) then Dec(Pos);
ReadOnly := not (Caracter in ['0'..'9',#13, ',', #8]) or
(Pos <> $FFFFFFFF) and (Caracter = ',') or
((Caracter <> #8) and (Caracter <> #13) and (Pos < (SelStart - 1)));
end;
end;