Вниз
Скачать: 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.028 c
15-1153491701
stud
2006-07-21 18:21
2006.08.20
осаго при дтп. вот вопрос.


1-1152013774
Искандер В.
2006-07-04 15:49
2006.08.20
Нестандартные шрифты


2-1154344302
Nik2006
2006-07-31 15:11
2006.08.20
Одновременное использование файла


3-1150304770
vvQuad
2006-06-14 21:06
2006.08.20
Перенос БД на другой комп


15-1153895508
miek
2006-07-26 10:31
2006.08.20
Диалог Open Files




   Наверх