Советы по Delphi

       

Как вызвать PopupMenu?


Я создал общий обработчик события для всех моих компонентов EditBox. Моя проблема заключается в том, что в обработчике при нажатии правой кнопки мыши мне нужно вызвать PopupMenu, создать список доступных значений, отметить текущее и вернуть обратно в EditBox выбранное, т.е. мне нужна двухсторонняя связь.

Это хороший кандидат в Delphi FAQ. Вот небольшой совет, который я недавно кому-то давал (извините, забыл кому):

Добавьте объявление переменной в секцию private вашей формы:

ActivePopUp : TPopUpMenu;

Затем укажите в обработчике события OnPopUp на общий TPopUpMenu как показано ниже:



procedure TForm1.OnPopUp (Sender: TObject);beginActivePopUp := Sender as TPopUpMenu;end;

Затем из обработчика события любого элемента PopupMenu вы можете сослаться на компонент, над областью которого и было вызвано контекстное меню:

ActivePopUp.PopUpComponent

-TonyT. [000725]



Содержание раздела