Форум: "KOL";
Текущий архив: 2006.08.20;
Скачать: [xml.tar.bz2];
Внизвопрос по 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 вся ветка
Форум: "KOL";
Текущий архив: 2006.08.20;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.042 c