Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Как узнать, к какому объекту обращается TPopurMenu


Автор: ZLOvar 6.11.2010, 12:17
Здравствуйте. Можно ли как-нибудь узнать, по какому обьекту (в данном случае это TSpeedButton) кликнули ПКМ и вывели PopurMenu? Проблема заключается в том, что на форме много кнопок и заранее неизвестно их имя. Заранее спасибо.

Автор: БелАмор 6.11.2010, 13:44
Свойство TPopupMenu.PopupComponent

Автор: ZLOvar 6.11.2010, 14:07
БелАмор, 
А как нужно использовать это св-во? Например процедура OnClick:
Код

procedure TForm1.N1Click(Sender: TObject);
begin
 //здесь нужно узнать, по какому объекту кликнули ПКМ.  
end;

Автор: БелАмор 6.11.2010, 15:23
Цитата(ZLOvar @  6.11.2010,  14:07 Найти цитируемый пост)
А как нужно использовать это св-во?

Например, так:
Код

procedure TForm1.N1Click(Sender: TObject);
begin
  with PopupMenu1 do
  begin
    ShowMessage(Format(
      'Меню было вызвано для компонента:'#13#10 +
      'Class: %s'#13#10 +
      'Name:  %s',
      [PopupComponent.ClassName, PopupComponent.Name]));
  end;
end;

При необходимости  можно проверять тип PopupComponent или приводить его к нужному типу.

Добавлено через 10 минут и 21 секунду
Например, вставка текста в соответстующий TEdit:
Код

procedure TForm1.N2Click(Sender: TObject);
begin
  if PopupMenu1.PopupComponent is TEdit then
    TEdit(PopupMenu1.PopupComponent).Text := 'Текст вставлен через меню';
end;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)