VB [(Function) обрабатывает ...] эквивалент в Delphi - PullRequest
3 голосов
/ 10 апреля 2011

Скажем, у нас было что-то вроде

Private Sub ClickObject(ByVal sender As System.Object, ByVal e as System.Eventargs) 
Handles Object1.click, Object2.click, Object3.click

Который берет событие после «Ручек» и отправляет их в функцию.

Есть ли эквивалент в Delphi, и как бы я это сделал?

Ответы [ 2 ]

4 голосов
/ 10 апреля 2011

Добавьте TActionList к вашей форме.Добавьте к нему TAction и обработайте его событие OnExecute, как и событие OnClick какого-либо другого элемента управления.Назначьте Action свойства элементов управления для ссылки на действие, которое вы добавили в список действий.(Это также приводит к тому, что элементы управления получают свои подписи и включенные и видимые свойства из связанного действия. Это означает, что для меню и кнопок панели инструментов проще иметь одинаковые состояния, когда они представляют одну и ту же команду.)

3 голосов
/ 10 апреля 2011

Да.

Вы можете создать обработчик событий и назначить его нескольким элементам управления.

procedure TForm1.ThreeControlsClick(Sender: TObject);
begin
  if Sender = Button1 then
    HandleButton1Click
  else if Sender = ComboBox1 then
    HandleComboBox1Click
  else if Sender = Edit1 then
    HandleEdit1Click;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Button1.OnClick := ThreeControlClick;
  ComboBox1.OnClick := ThreeControlClick;
  Edit1.OnClick := ThreeControlClick;
end;
...