Parece que no hay error en el codigo, pero una vez me paso lo mismo, todo parecia estar bien codificado, y en la ejecucion aparecia un error con los numero flotantes, no recuerdo bien el mensaje de error. Pero el problema era que no podia convertir un AnsiString a Flotante por la configuracion regional y de idioma de windows.
Lo que paso era que se intentaba introducir por un edit un numero foltante, por ejemplo:
325.5
pero al querer usar la funcion StrToFloat marcaba error. Lo que paso era que en la configuracion regional, estaba configurado como Español de españa, y la notacion para los numeros cambia pues es coma flotante. Entonces un numero flotante era 325,5 con ',' no con '.'
Y se soluciono cambiando a Español de Mexico, en la que se usa punto flotante
Tal vez y ese no sea tu problema, pero eso fue lo que me paso, no se si me explique bien.