Советы по Delphi

         

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


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

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

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

    ActivePopUp : TPopUpMenu;

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

   

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

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

    ActivePopUp.PopUpComponent

-TonyT. [000725]



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