Конференция "KOL" » InsertSubMenu [Delphi, Windows]
 
  • 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 невозможно
  • RusSun © (22.10.10 15:15) [3]
    Ихмо ты сам ответил на свой вопрос. :)
  • QAZ (22.10.10 15:30) [4]

    > Ихмо ты сам ответил на свой вопрос. :)

    не факт
    по итему нельзя,возможно есть варианты,патаму и вапрос возник
  • RusSun © (22.10.10 16:55) [5]
    Ну одновременно всё равно
    > "оригинал" popupmenu и его "копию"
    не вызываешь? В один момент  "оригинал" popupmenu привязан к чему-то, затем вызов его "копии" тоже связан с чем-то.
  • QAZ (25.10.10 13:56) [6]

    >  [5]

    так то да, по логике должен работать Parent но у вставленного меню он также =0 как и у оригинала и итемы нумеруются тож с 0
    ну а в принципе я уже придумал как определять хоть и через ж0
 
Конференция "KOL" » InsertSubMenu [Delphi, Windows]
Есть новые Нет новых   [120347   +16][b:0][p:0.005]