Это всё я тут флудю, бан по мне плачет 

В данный момент пытаюсь вывести слова в строке в обратном порядке. Т.е.: папа мама брат->брат мама папа
Вот что у меня пока что получается:
unit Laba4_2Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Label1: TLabel;
    Edit2: TEdit;
    Label2: TLabel;
    Button1: TButton;
    procedure Edit1Change(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
  str: string;
implementation
{$R *.dfm}
procedure TForm1.Edit1Change(Sender: TObject);
begin
str:=Edit1.Text;
end;
procedure TForm1.Button1Click(Sender: TObject);
Var
  A   : Array[1..100] of String;
  i,n : Longint;
  z : String;
begin
  str:=str+' ';
  z:='';
  n:=0;
  For i:=1 to Length(str) Do
  If str[i]<>' ' Then
  z:=z+str[i]
    Else
     Begin
       n:=n+1;
       A[n]:=z;
       z:='';
     End;
  For i:=n Downto 1 Do
  Edit2.Text:=A[n]+' ';
end;
end.
Но моя недопрограмма выводит только последнее слово и всё. Как исправить?  
