Форум: "Основная";
Текущий архив: 2005.03.20;
Скачать: [xml.tar.bz2];
ВнизКак перехватить click и по пунктам меню Найти похожие ветки
← →
syscoder (2005-03-07 18:52) [0]Есть проект, в котором при открытии разных типов файлов надо создавать окно с определённым набором инструментов. Сейчас у меня каждому событию OnClick менюшек соответствует создание определённого типа файла. Надо сделать так, чтобы при нажатии на любую менюшку вызывалась одна процедура, которая получала бы в параметре , допустим, имя нажатой менюшки и в зависимости от неё шла дальнейшая обработка. Может кто-нибудь сталкивался с такой задачей?
← →
Fenik (2005-03-07 19:01) [1]Присвой все пунктам меню один обработчик.
При создании форма присваивай свойству tag соответствующее значение. Допустимconst
TXT_FIlE = 100;
DOC_File = 101;
В Form1Create:begin
TxtMenuItem.Tag := TXT_FILE;
DocMenuItem.Tag := DOC_FILE;
end;
В общем обработчике:begin
//здесь общие действия
//дальше конкретно:
case TMenuItem(Sender).Tag of
TXT_FIlE: begin ... end;
DOC_File: begin ... end;
end;
end;
← →
syscoder (2005-03-07 19:45) [2]>> Fenik (07.03.05 19:01) [1]
Никак не пойму, почему в этой строкеcase TMenuItem(Sender).Tag of
компилятор гонит на необъявленность SENDER"а?
А можно реализовать другим методом, например через Application.OnMessage или WndProc?
← →
MU © (2005-03-07 19:51) [3]Сказано же:
Присвой все пунктам меню один обработчик.
В общем обработчике:
procedure TForm.OnmenuItemClick(Sender : Tobject)
begin
//здесь общие действия
//дальше конкретно:
case TMenuItem(Sender).Tag of
TXT_FIlE: begin ... end;
DOC_File: begin ... end;
end;
end;
← →
syscoder (2005-03-07 19:58) [4]>> MU © (07.03.05 19:51) [3]
Пардон, опух я просто уже сидеть перед этим ящиком.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.03.20;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.162 c