Вы не можете изменить локальную переменную другой процедуры, даже если она не существует.В вашем примере просто используйте вместо этого входной параметр:
Procedure Test1(const Word: string);
begin
Form1.Caption := Word;
end;
Procedure TForm1.Button1Click(Sender: TObject);
begin
Test1('Form1');
end;
В противном случае добавьте вместо него член TForm1
class:
type
TForm1 = class(TForm)
...
public
Word: string;
...
end;
...
Procedure Test1;
begin
Form1.Caption := Form1.Word;
end;
Procedure TForm1.Button1Click(Sender: TObject);
begin
Word := 'Form1';
Test1;
end;