Hola, he aplicado el ejemplo que me dejaste pero me sigue dando error
, aprovecho para explicar el problema mejor. Tengo un Tedit en el que solo quiero permitir entrar numeros, hasta aquí todo está bien porque pongo este coódigo en el
procedure
Código:
FrmCanvi.edPagatKeyPress(Sender: TObject; var Key: Char);
begin
If (contarcomes(edPagat.Text)=0) then
If Not (Key IN ['0'..'9',#8,',']) then
key := #0;
if (contarcomes(edPagat.Text)>0) or (key=',')then
If Not (Key IN ['0'..'9',#8]) then
key := #0;
end;
Donde contarcomes es una función que he hecho yo para contar las comas del Tedit pero que no funciona el código es:
Código:
function TfrmCanvi.contarcomes(n:string): integer;
var
car: string;
i,coma: Integer;
begin
coma:=0;
For I:=0 to Length(n) do
car:=copy(n,i,1);
if car=',' then
coma:=coma+1;
result:=coma;
end;
El problema es que quiero que me acepte una coma en el Tedit, en la posición que la ponga el usuario menos en el primer carácter (daria error por el Float) y en el último caràcter. Además quiero que en los carácteres del medio sólo pueda haber una coma. Todo esto se complica más porque tengo una función que hace una resta con este número con cada carácter que se introduce en el edit, quiero decir que si la coma está mal puesta o si hay más de una coma el programa da error y esto es lo que quiero evitar.