Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.09.22;
Скачать: CL | DM;

Вниз

как определить контрол вызвавший popupmenu   Найти похожие ветки 

 
Разведка   (2013-01-10 22:06) [0]

На форме несколько контролов и один TPopupActionBar
Все контролы вызывают одно меню, как определить в процедуре вызванного меню какой именно контрол его вызвал?

ShowMessage(TControl(Sender).ClassName);
Сендер определяет только класс самого меню


 
Игорь Шевченко ©   (2013-01-10 22:09) [1]

Зачем ?


 
Smile   (2013-01-10 22:13) [2]

> Игорь Шевченко ©   (10.01.13 22:09) [1]

Мне тоже интересно, зачем?
:)


 
Ega23 ©   (2013-01-10 22:16) [3]


unit Unit21;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, Menus, ComCtrls;

type
 TForm21 = class(TForm)
   TreeView1: TTreeView;
   ListView1: TListView;
   ListView2: TListView;
   PopupMenu1: TPopupMenu;
   qwewqe1: TMenuItem;
   procedure qwewqe1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form21: TForm21;

implementation

{$R *.dfm}

procedure TForm21.qwewqe1Click(Sender: TObject);
begin
 ShowMessage(PopupMenu1.PopupComponent.Name);
end;


 
Sha ©   (2013-01-10 22:16) [4]

PopupComponent


 
Разведка   (2013-01-10 22:23) [5]


> Игорь Шевченко ©   (10.01.13 22:09) [1]
> Зачем ?


Не красиво отвечать на вопрос вопросом

Вы меня толкаете в дополнительную демагогию

Например у меня БД где учитываются РОГА и КОПЫТА и на форме добабавления в таблицу новых  рогов и копыт 2 комбобокса из которых нужно выбрать в 1-м рога (прямые, косые, спиленные) во 2-м копыта (подкованные, стертые... т.д.), но вот возникает ситуация, когда желаемых свойств нет, но есть попуп меню в котором есть пункт "добавить в справочник" оно вызывает справочник для добавления, но в зависимости каким контролом было вызвано меню, например РОГА, то в процедуре должен вызван и соответствующий справочник "Добавление РОГОВ" ..
На форме много на самом деле много контролов с единственным меню...


 
Игорь Шевченко ©   (2013-01-10 22:34) [6]

Бедные пользователи


 
Разведка   (2013-01-10 22:35) [7]


> Игорь Шевченко ©   (10.01.13 22:34) [6]
> Бедные пользователи


Ок. А как вариант как можно по другому?


 
Den   (2013-01-10 23:06) [8]

Я может не совсем понял че автор хотел но что если определить глобальный TComponent и проверять его при вызове? Сори если не в тему даже не знаю че такое TPopupMenu это.


 
Игорь Шевченко ©   (2013-01-10 23:07) [9]

Как вариант, меню должно предполагать однозначное действие, а не разные, в зависимости от того, кто инициировал это единственное меню. Применительно к рогам с копытами я бы ввел два пункта - добавтить рог или добавить копыто


 
Ega23 ©   (2013-01-10 23:22) [10]


> Как вариант, меню должно предполагать однозначное действие,
>  а не разные, в зависимости от того, кто инициировал это
> единственное меню. Применительно к рогам с копытами я бы
> ввел два пункта - добавтить рог или добавить копыто
>


Ну тут спорный вопрос. Если на попапе - то, наверное, создать 2 экшена с Caption = "Добавить". А если не только попап, но ещё и кнопка на тулбаре, то не лишено смысла создать один Action и там в нём контрол проверять.


 
Игорь Шевченко ©   (2013-01-10 23:28) [11]

Ega23 ©   (10.01.13 23:22) [10]

Action должен выполнять, а не проверять. Впрочем, желающих странного достаточно.


 
Ega23 ©   (2013-01-11 01:01) [12]


> Action должен выполнять, а не проверять.

Ага, а OnActionUpdate - это для марсиан.


 
Германн ©   (2013-01-11 02:04) [13]


> Игорь Шевченко ©   (10.01.13 23:07) [9]
>
> Как вариант, меню должно предполагать однозначное действие,
>  а не разные, в зависимости от того, кто инициировал это
> единственное меню. Применительно к рогам с копытами я бы
> ввел два пункта - добавтить рог или добавить копыто
>

Не согласен! Зачем пользователю, который хочет и в некоторых случаях может работать только с рогами выдавать меню, где есть выбор копыт?


 
Inovet ©   (2013-01-11 02:19) [14]

Я сразу и не понял, как сделано. А не лучше ли по кнопке для вызова редактора справочника возле каждого комбобокса? Даже сделать такой компонет специальный.


 
Игорь Шевченко ©   (2013-01-11 10:27) [15]

Ega23 ©   (11.01.13 01:01) [12]


> Ага, а OnActionUpdate - это для марсиан.


Это в Киеве дядька



Страницы: 1 вся ветка

Текущий архив: 2013.09.22;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.009 c
15-1365539402
Юрий
2013-04-10 00:30
2013.09.22
С днем рождения ! 10 апреля 2013 среда


11-1248179284
DevilDevil
2009-07-21 16:28
2013.09.22
Дайте кто-нибудь KOL_MCK для Delphi6


15-1365671316
ПЛОВ
2013-04-11 13:08
2013.09.22
UDF на Delphi, FireBird и NULL


15-1365798603
Юрий
2013-04-13 00:30
2013.09.22
С днем рождения ! 13 апреля 2013 суббота


15-1364761592
TUser
2013-04-01 00:26
2013.09.22
Рисуем лошадь