Интересная картина получается. Если использовать var в процедурах то передовать можно только переменные. Прямой текст (данные) передавать нельзя.
Код:
прокатит
procedure TForm1.Button1Click(Sender: TObject);
procedure GetText(Text: string);
begin
Edit1.Text:=Text;
end;
var
r: string;
begin
r:='Welcome';
GetText(r);
end;
не прокатит
procedure TForm1.Button1Click(Sender: TObject);
procedure GetText(Text: string);
begin
Edit1.Text:=Text;
end;
begin
GetText('welcome');
end;
и ещё один плюс процедура с использованием var в машинном коде занимает менюше места и соответственно выполняется быстрее.
файлик with_out_var без использования var в процедуре
Код:
procedure TForm1.Button1Click(Sender: TObject);
procedure GetText(Text: string);
begin
Edit1.Text:=Text;
end;
var
r: string;
begin
r:='Welcome';
GetText(r);
end;
файлик with_var c использования var в процедуре
Код:
procedure TForm1.Button1Click(Sender: TObject);
procedure GetText(var Text: string);
begin
Edit1.Text:=Text;
end;
var
r: string;
begin
r:='Welcome';
GetText(r);
end;
и наглядно видно что asm операторов меньше с использованием var. это наверное обуславливается тем что. при запуске процы без var переменная text создается, а проца с var истолькует в себе глобальную переменную!?