method assignment

Q:  How do I assign a method to the event of a dynamically created object?

A:

unit Unit1;

interface

uses
  SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  Forms, Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var
  t: TButton;
begin
  t := TButton.create(application);
  t.parent := form1;
  t.caption := 'New Button';
  t.OnClick := Button2.OnClick;
  t.show;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  showMessage((sender as TButton).caption);
end;

end.