Вниз
Скачать: CL | DM;

Sender   Найти похожие ветки 

 
bulanov   (2004-06-08 03:46) [0]

на форме несколько компонентов TShape.
у каждого из них в событии OnContextPopup прописано выпадение PopupMenu1:

procedure TFMain.Shape1ContextPopup(Sender: TObject; MousePos: TPoint;
 var Handled: Boolean);
begin
 PopupMenu1.Popup(Mouse.CursorPos.X,Mouse.CursorPos.Y);
end;

Вопрос: Как при выборе одного из выпадающих итемов PopupMenu1 узнать допустим имя компонента TShape над которым этот PopupMenu1 выпал.


 
KilkennyCat ©   (2004-06-08 03:48) [1]

У каждого TShape обозначить свойство Tag
Далее в обработчике
Case (Sender as TComponent).Tag of
 1 : //Шейп с тэгом 1
 2 : //Шейп с тэгом 2
 3 : //Шейп с тэгом 3
End;


 
KilkennyCat ©   (2004-06-08 03:51) [2]

Извините, не совсем въехал в вопрос, так вернее:

Var
 Nomer_Shape : byte;

....

procedure TFMain.Shape1ContextPopup(Sender: TObject; MousePos: Point; var Handled: Boolean);
begin
 Nomer_Shape := (Sender as TComponent).Tag;
 PopupMenu1.Popup(Mouse.CursorPos.X,Mouse.CursorPos.Y);
end;


 
bulanov   (2004-06-08 03:59) [3]

ну я понял, вы предлягаете объявить переменную, и в обработчике ContextPopup определять тэг.

мне нужно определять тэг в обработчике выбранного итема:

procedure TFMain.N1Click(Sender: TObject);
begin
 ???
end;

где N1:TMenuItem этого PopupMenu1


 
KilkennyCat ©   (2004-06-08 04:13) [4]

Это понятно, но Вы же хотели узнать, над каким Shapом было вызвано меню? Я это и ответил. Какая для Вас разница, когда определять тэг? Меню, однажды вскочившее, хозяина уже не поменяет. А вот для программы разница есть, ибо в обработчике кликов по итемам Sender уже небудет принадлежать Shape.

И вся обработка, в конечном итоге:
procedure TFMain.N1Click(Sender: TObject);
begin
if Nomer_Shape then...
end;


 
evvcom ©   (2004-06-08 08:26) [5]

Прописываешь в TFMain приватную переменную FShape: TShape; и в Shape1ContextPopup делаешь присвоение FShape := Sender;



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.019 c
1-1086458686
EVP
2004-06-05 22:04
2004.06.20
Русский шрифт


3-1085718625
explorer
2004-05-28 08:30
2004.06.20
Работа с DataSource


14-1086242126
Layner
2004-06-03 09:55
2004.06.20
Активизация Win2003, через прокси можно ли активизировать?


1-1086342787
Ruslan
2004-06-04 13:53
2004.06.20
Не могу очистить TreeView.


3-1085472676
r9000
2004-05-25 12:11
2004.06.20
Вставка записи в таблицу базы




   Наверх