Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.06.20;
Скачать: 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 вся ветка

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

Наверх




Память: 0.47 MB
Время: 0.025 c
6-1083091682
Kme
2004-04-27 22:48
2004.06.20
Как узнать размер файла перед скачиванием


14-1085944450
Тимур
2004-05-30 23:14
2004.06.20
Game Shark


3-1085730363
alsov1
2004-05-28 11:46
2004.06.20
Как получить имена таблиц sql запросом


14-1086256838
ilnarab
2004-06-03 14:00
2004.06.20
Потерял исходники


14-1086268337
Григорьев Антон
2004-06-03 17:12
2004.06.20
Кто-нибудь сталкивался с вирусом cache277?