Lo que podrias hacer para solucionar el tema a la rapida, es pasar parametros a la funcion y asignar valores de retorno. Un ejemplo
Código Delphi
[-]
Function DosResultados(Fecha:TDatatime;Var Return_Integer:Integer; Var Return_String:Strirng):String;
begin
...
Return_Integer:=1;
return_string:='Valor de retorno';
...
result:='Valor retorno Funcion';
end;
Procedure DosResultados(Fecha:TDatatime;Var Return_Integer:Integer; Var Return_String:Strirng);
begin
...
Return_Integer:=1;
return_string:='Valor de retorno';
...
end;
Para que un parametro como Return_Integer sea posible que sallga de la funcion con su valor modificado debes usar la palabra reservada VAR.
Esto es valido para procedures tambien.
Saludos...