Невозможно получить доступ к основному полю события - PullRequest
7 голосов
/ 09 августа 2011

Я пытаюсь вызвать событие TButton Click из события двойного клика TListBox, просто вызвав:

Button1.Click;

Я всегда могу сделать это в Delphi XE и в версии ниже него, но теперь он вызываетошибка в Delphi Prism.Сообщение об ошибке «Не удается получить доступ к основному полю события».Итак, как бы вы вызвали событие из события другого элемента управления, например, TListBox?

, например:

method UnitSelectDialog.UnitListBox_DoubleClick(sender: System.Object; e: System.EventArgs);
begin
   Okbtn.Click;
end;

Код выше такой же, как если бы вы нажали кнопку OKв форме.

Ответы [ 2 ]

5 голосов
/ 09 августа 2011

Я не знаком с Призмой, но для меня это похоже на кнопку WinForms. Если это так, то вы можете позвонить PerformClick.

OKbtn.PerformClick;

.net события намного сложнее, чем события VCL. Наиболее важно то, что они являются многоадресными, что означает возможность подключения нескольких обработчиков. Одним из следствий этого является то, что вызывать события гораздо сложнее.

0 голосов
/ 16 августа 2011

, если вы определяете свой собственный класс, второй вариант - выставить общедоступный обработчик "поднимать" для события, такой как

event Click: ClickEventhandler; public raise;

, это заставляет компилятор сделать надлежащий метод общедоступным, чтобыдругие классы могут вызывать «Click ()», чтобы вызвать событие.(конечно, любая другая негласная видимость также работает).

...