Ну самый простой способ – это решить задачу в лоб:
Иметь для каждой кнопки свое меню.
2. Можно и в вашем случае Нужно использовать значение Tag у кнопки.. Сво-во Тэг как раз и нужно для подобных вещей, чтобы различить какой компонент мы юзаем, в данном случае при вызове меню…
Для этого в самом меню… мы должны при действии разобрать значение тэга и сделать правильные подстановки..
Пример:
Форма, две кнопки + одно меню. У каждой кнопки свое уникальное (если нужно уникальное действие для меню) значение поля Тэг… при клике на пункте меню в Название формы пишем на какой кнопке было вызвано меню…. Вы же будите делать свои действия скажем подстовлять свои IP.
Так же добавил как вы изночально хотели через Name.. можно и так.. но я бы сделал через Tag.
Форма:- Код: Выделить всё
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
Menus;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
MenuItem1: TMenuItem;
PopupMenu1: TPopupMenu;
procedure MenuItem1Click(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.MenuItem1Click(Sender: TObject);
begin
Caption:=IntToStr(PopupMenu1.PopupComponent.Tag);
Caption:= Caption+ ' Name= '+ PopupMenu1.PopupComponent.Name;
end;
end.
PS. Если проблема решена.. подправте название темы на: Выбрать переменную в зависимости от свойства объекта[Решено]. Спасибо это поможет другим.
PS2. Опередили...