Delphi passando parâmetros por referência ou por valor / cópia

Context 1

var text:String;

text:='hello';

myFunc(text);

Context2

function myFunc(mytext:String);
var textcopy:String;
begin

    textcopy:=mytext;

end;

myFunc no contexto2 foi chamado a partir do contexto1, a variável localmytext está apontando para uma memória fora do Context2? ou omytext têm seu próprio espaço de memória dentro do escopo e são preenchidos / copiados com o mesmo conteúdo dotext? Provavelmente estou perdendo algo realmente básico, porque estou recebendo umaccess violation erro.

Existe alguma maneira de especificar explicitamente se uma função deve receber parâmetros por referência ou por valor, copiando como em C? Não tenho certeza de como estou fazendo isso.

questionAnswers(6)

yourAnswerToTheQuestion