Для программно создаваемого элемента управления управления возможно создать обработчик некоторого стандартного события. Для этого необходимо выполнить следующие действия:
1. В секции Private или Public формы создать описание процедуры с сигнатурой стандартного обработчика:Procedure Obrab (Sender:TObject);
2. Написать код процедуры как метод класса формы: Procedure TForm1. Obrab (Sender:TObject);
3. Связать событие элемента управления с обработчиком: Button1.OnClick := @Obrab;
Следующая программа демонстрирует перечисленные этапы

// Описание класса формы
TForm1 = class(TForm)
private
Knopka1,Knopka2: TButton; // кнопки
procedure Knop1(Sender:TObject); // процедуры
procedure Knop2(Sender:TObject); // обработки событий
//
//
procedure TForm1.FormActivate(Sender: TObject);
begin
// создание первой кнопки при активизации формы
Knopka1 := TButton.Create(Self);
Knopka1.SetBounds(10,10,100,40);
// размеры кнопки одной командой
Knopka1.OnClick := @Knop1;
// связь события нажатия с процедурой
Knopka1.Parent := Panel1;
// контейнер, содержащий кнопку
Knopka1.Caption:='Кнопка1';
// заголовок кнопки
end;

procedure TForm1.Knop1(Sender: TObject);begin if Knopka2 = nil then // Если 2-й кнопки еще нет begin Knopka2 := TButton.Create(Panel1); // Владелец - панель Knopka2.Left:=10; // можно и так Knopka2.Top:=10; // задавать Knopka2.Width:=100; // границы Knopka2.Height:=40; // элемента управления Knopka2.OnClick:=@Knop2; // Обраб 2-й клавиши Knopka2.Caption:='Кнопка 2'; Knopka2.Parent := Self; // На форме end;end;

procedure TForm1.Knop2(Sender: TObject);begin Knopka1.Free; Knopka1 := nil;end;