Привожу пример части программы , что бы разобраться можно было , а также еще одну подпрограмму которая используется:
Для справки моя подпрограмма берет значение длительности в строковом типе , формата " 96 мин" , преобразует его в цифры , вычисляет часы и минуты , и переводит обратно в строковый формат "01:36:00" , подпрограмма вся написана , но не проходит стадию компиляции...
// Удаляет из строки все, что не является цифрой
function CheckNum(s: widestring): widestring;
var
 st: widestring;
 i: integer;
begin
 if pos('€', s) > 0 then
  delete(s, 1, 7);
 if pos('¥', s) > 0 then
  delete(s, 1, 6);
 for i := 1 to length(s) do
   if (s >= '0') and (s <= '9') then
     st := st + s; 
 result := st;
end;
function CorrectTime ( Tmp : WideString ) : WideString ;
Var
 stime , pri : WideString;
 prim : Char;
 i , tm , hour , min , data : Integer;
 raz1 , raz2 , raz3 : Boolean ;
 begin
 i := 0 ;
 tm := 0 ;
 hour := 0 ;
 min := 0 ;
 raz1 := False ;
 raz2 := False ;
 raz3 := False ;
 Tmp := CheckNum (Tmp);
  if length(Tmp) = 3 then
   begin
    raz1 := True ;
    raz2 := True ;
    raz3 := True ;
   end ;
    if length(Tmp) = 2 then
     begin
     raz2 := True ;
     raz3 := True ;
    end ;
     if length(Tmp) = 1 then
      begin
       raz3 := True ;
      end ;
  begin
  for i := 1 to length(Tmp) do
   if raz1 then
    begin
   prim := Tmp(i) ;
     case prim of
      `0`: tm := tm + 0 ;
      `1`: tm := tm + 1*100 ;