Hola,
Al igual que dice el amigo Roman lo mejor es reutilizar un componente ya creado o adaptarlo a tus necesidades. Si te interesa en torry tenés un par para que veas:
http://www.torry.net/quicksearchd.ph...edit&Title=Yes
Otra cosa que podrías hacer es una suerte de validación al salir del control para asegurarte que siempre quede un valor decimal (quizás un override de DoExit):
Código Delphi
[-]
...
try
StrToFloat(Texto);
except
Texto := ValorDefault;
end;
...