Ver Mensaje Individual
  #10  
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
Hola por fin lo solucioné, como puedes ver la solución no era nada complicada pero supongo que son esas cosas fáciles en la que cuesta caer, o mejor dicho a mí me cuesta caer. Primero hago una comprobació para ver si se ha puesto la coma en el TEDit, si ya está escrita quiere decir que no se puede volver a escribir por lo que le doy el valor de false a la función y si no está escrita true.

Cita:
function TfrmCanvi.Activacomes: Boolean;
var
I, cont: Integer;
car, copia: String;
begin
cont:=0;
copia:=edPagat.Text;
For i:=0 to Length(copia) do
Begin
car:=copy(copia,i,1);
if car=',' then
cont:=cont+1;
end;

if cont>0 then
result:=False
else
result:=True;
end;
El siguiente paso es decir que si las comas están activadas las dejamos que se escriban, pero si el valor de la función anterior es false no se podrán escribir. Tampoco se podrá escribir la coma como primer carácter del Tedit.

Cita:
procedure TfrmCanvi.edPagatKeyPress(Sender: TObject; var Key: Char);
Begin
Activacomes;
If Activacomes=False then
If Not (Key IN ['0'..'9',#8]) then
key :=#0 ;


If Activacomes=True then
Begin
If Not (Key IN ['0'..'9',#8,',']) then
key := #0;
If (Key=',') and (edPagat.Text='') then
If Not (Key IN ['0'..'9',#8]) then
key :=#0 ;
end;
end;
De esta manera consigo tener un TEdit que realizas operaciones matemáticas al mismo tiempo que le introducimos los datos y nunca da error el programa. Espero que sirva mi experiencia para ayudar a otros.
Ohran de todas formas muchas gracias por todo, seguramente si te hubiese explicado mejor mi problema me hubieras podido ayudar mejor. Hasta pronto.
__________________
"La perseverancia es el camino del éxito"
Responder Con Cita