Ver Mensaje Individual
  #4  
Antiguo 08-03-2005
alfredosg19 alfredosg19 is offline
Miembro
 
Registrado: ene 2005
Ubicación: Barcelona
Posts: 91
Reputación: 20
alfredosg19 Va por buen camino
Me da error

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.
__________________
"La perseverancia es el camino del éxito"
Responder Con Cita