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

вопрос по PopupMenu   Найти похожие ветки 

 
Flea   (2005-11-10 00:27) [0]

добрый вечер.
возник следующий вопрос: в программе на форме есть несколько richedit"ов, для каждого из них установлено в качестве autopopupmenu одно и то же меню.
как узнать в обработчике событий меню, с какого из компонентов активировано меню в данный момент?
заранее благодарю.


 
Thaddy   (2005-11-10 06:54) [1]

OnPopup can not be used but you can connect OnMouseDown handler like:

procedure TForm1.MouseDown(Sender: PControl; var Mouse: TMouseEventData);
begin
 if Mouse.Button=mbRight then
    if sender = R1 then
       MsgOk("Top richedit") else
    if sender = r2 then
       MsgOk("Bottom richedit");
end;


 
Flea   (2005-11-10 11:39) [2]

а как тогда узнать какой из item"ов popupmenu был нажат?


 
ECM ©   (2005-11-10 13:23) [3]


> Flea   (10.11.05 11:39) [2]

Так же как  раньше - в обработчике OnMenu итема... А MouseDown используйте для предварительной фиксации:

var
 LastPopupCtr: PControl = nil;

procedure TForm1.MouseDown(Sender: PControl; var Mouse: TMouseEventData);
begin
if Mouse.Button=mbRight then LastPopupCtr := Sender;
end;

procedure TForm1.PopupMenu1N1Menu(Sender: PMenu; Item: Integer);
begin
 Assert(LastPopupCtr <> nil);
 if LastPopupCTr = R1 then
      MsgOk("Top richedit") else
 if LastPopupCtr = r2 then
      MsgOk("Bottom richedit");
end;


 
Flea   (2005-11-10 14:39) [4]

сейчас попробовал сделать проект для проверки этого способа, но событие MouseDown всегда возвращает мне в качестве LastPopupCtr форму, а не один из richedit"ов...
кроме того не понятно, что делать если richedit"ы создаются во время работы программы, как совершить действие указанное в меню именно с данным richedit"ом?


 
ECM ©   (2005-11-10 14:52) [5]


> событие MouseDown всегда возвращает мне в качестве LastPopupCtr
> форму, а не один из richedit"ов...

Так присвойте обработчик MouseDown именно richedit-ам
сразу после создания


 
Flea   (2005-11-10 16:51) [6]

да, что-то я тормознул. спасибо за помощь



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

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



Память: 0.46 MB
Время: 0.027 c
2-1153253039
FifteenTen
2006-07-19 00:03
2006.08.20
Как в проводнике


2-1154514394
VitV
2006-08-02 14:26
2006.08.20
VitV


1-1152179934
Dmitry_177
2006-07-06 13:58
2006.08.20
Как можно прочитать сообщения из окна icq?


2-1154588715
Zilog
2006-08-03 11:05
2006.08.20
PostMessage(Edit.Handle,WM_KEYDOWN,code,0);


15-1153765576
Некто
2006-07-24 22:26
2006.08.20
ПлакалЪ :))))




   Наверх