Aunque soy nuevo en este foro, hace años que lo leo. Soy forero activo del club builder.
Estoy retocando un componente TEdit al que le he añadido varias funciones numéricas, y esta escrito en delphi
delphi
procedure TEditReal.Change; begin if FResultado<>edTexto then begin if Text <> '' then and // alguna de las 2 sentencias es correcta? // o sugerencia if Text[1]>='0' and Text[1]<='9' then <-------- da error if isdigit(Text[1]) then try FDoubleValue:=StrToFloat(Text); except FDoubleValue:=0.0; end; // end; end else FDoubleValue:=0.0; FIntegerValue:=Trunc(FDoubleValue); inherited Change; end;
La función devuelve el valor double del Text en un Edit. Las teclas ya están filtradas antes de llegar a la función, pero a veces llega texto al cargar desde algún archivo externo
Para que StrToFloat no salte por los aires, me he propuesto filtrar el Text antes de la conversión, es decir, que solo hayan dígitos y para ello he probado con la primera letra de Text
En C++ no tendría ningún problema, pero a la hora de compilar el componente, el IDE 2007 se resiste.
¿Algún alma caritativa me echa un cable?
Gracias y Saludos