-
QAZ (15.10.10 15:05) [0]если готовое меню вставить в другое через InsertSubMenu
то как узнать на какое из них было нажатие?
тоесть что нажал на вставленую "копию" а не на отдельный "оригинал" -
Jon © (19.10.10 21:39) [1]Use the "Item" property:
program Test;
uses KOL;
var
Menu1, Menu2: PMenu;
Menu1Items: Integer;
procedure MenuItemClick(Dummy: Pointer; Sender: PMenu; Item: Integer);
begin
if Item <= Menu1Items then
ShowMessage('Menu1')
else
ShowMessage('Menu2');
end;
begin
Applet := NewForm(nil, 'Test');
Menu1 := NewMenu(Applet, 0, ['Menu1', '(', '1', '2', '3', ')'], TOnMenuItem(MakeMethod(nil, @MenuItemClick)));
Menu1Items := Menu1.Count;
Menu2 := NewMenu(Applet, 0, ['A', 'B', 'C'], nil);
Menu2.Caption := 'Menu2';
Menu1.InsertSubMenu(Menu2, -1);
Run(Applet);
end. -
QAZ (22.10.10 12:46) [2]
> [1]
не работает
я использую и "оригинал" popupmenu и его "копию" в программе одновременно и отличить их по item невозможно -
Ихмо ты сам ответил на свой вопрос. :)
-
QAZ (22.10.10 15:30) [4]
> Ихмо ты сам ответил на свой вопрос. :)
не факт
по итему нельзя,возможно есть варианты,патаму и вапрос возник -
Ну одновременно всё равно
> "оригинал" popupmenu и его "копию"
не вызываешь? В один момент "оригинал" popupmenu привязан к чему-то, затем вызов его "копии" тоже связан с чем-то. -
QAZ (25.10.10 13:56) [6]
> [5]
так то да, по логике должен работать Parent но у вставленного меню он также =0 как и у оригинала и итемы нумеруются тож с 0
ну а в принципе я уже придумал как определять хоть и через ж0