Conversão entre caminhos absolutos e relativos em Delphi

xistem funções padrão para executar a conversão de caminho relativo absoluto <--> no Delph

Por exemplo

O caminho 'base' é'C:\Projects\Project1\' caminho @Relative é'..\Shared\somefile.pas' caminho absoluto é'C:\Projects\Shared\somefile.pas'

Estou procurando algo parecido com isto:

function AbsToRel(const AbsPath, BasePath: string): string;
// '..\Shared\somefile.pas' =
//   AbsToRel('C:\Projects\Shared\somefile.pas', 'C:\Projects\Project1\')  
function RelToAbs(const RelPath, BasePath: string): string;
// 'C:\Projects\Shared\somefile.pas' =
//   RelToAbs('..\Shared\somefile.pas', 'C:\Projects\Project1\')  

questionAnswers(9)

yourAnswerToTheQuestion