Eine kleine Fehlerbehandlung wäre nicht schlecht, wenn man mal einen Leerstring übergibt.
z.B. bei
DecimalLat('') bekomm ich mit Sicherheit eine nette
Exception
(und nein, ich hab's jetzt nicht getestet ... ich weiß es so
)
Und bei CurseToStr könntest du statt der vielen IF ein schönes CASE verwenden, indem du den Winkel z.B. mit 100 multiplizierst und dann noch etwas rundest.