Разница между передачей параметров по значению и по ссылке в Delphi заключается в том, как подпрограмма использует переданные данные. 1
Передача по значению (англ. by value) предполагает передачу подпрограмме конкретного значения — числа, текста, логического значения и т. д.. 1 При таком способе создаётся локальная копия переменной, которая предоставляется для обработки в процедуру или функцию. 2 Любые изменения, сделанные внутри функции, не отразятся на исходном объекте. 5
Передача по ссылке (англ. by reference) подразумевает передачу не конкретного значения, а ячейки памяти, то есть переменной. 1 Подпрограмма может работать с этой переменной, то есть не только получать её значение, но и это значение менять. 1 Такой подход позволяет подпрограмме отдавать сразу несколько значений (причём не обязательно одного типа). 1
При оформлении подпрограммы параметр, передаваемый по ссылке, обозначается ключевым словом var, а для параметра, передаваемого по значению, просто указывается его тип. 4