Tony, a ver que te parece esto en lugar de esos case
Código Delphi
[-]
Cuatroprimeros := FormatFloat('0000', StrToInt(Cuatroprimeros));
OchoSegundos:= FormatFloat('00000000', StrToInt(OchoSegundos));
EDIT: ah, y para separar los trocitos, nada mejor que las funciones Pos y Copy
Código Delphi
[-]
if Pos('-', cadena) <> 0 then
begin
Cuatroprimeros := Copy(cadena, 0, Pos('-', cadena));
OchoSegundos := Copy(cadena, Pos('-', cadena), length(cadena));
end;
Lo he puesto de cabeza, seguramente se tendrán que retocar las posiciones de inicio o fin