Главная страница
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.021 c
1-1086265053
Eugene83
2004-06-03 16:17
2004.06.20
Доступ к переменным модуля Проэкта


14-1086041201
lak
2004-06-01 02:06
2004.06.20
зацените и скажите


14-1086234959
try
2004-06-03 07:55
2004.06.20
Shareware


3-1085479397
Rouse_
2004-05-25 14:03
2004.06.20
Исключение записи из выборки


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