Димнамическое меню

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Vitaliy-55, 21 Mar 2009.

  1. Vitaliy-55

    Vitaliy-55 New Member

    Joined:
    20 Mar 2009
    Messages:
    13
    Likes Received:
    0
    Reputations:
    0
    Доброго времени суток!!! Подскажите пожалуйста, каким образом можно выдернуть caption строки из динамического контекстного меню? Оч надо!!!!!!!!!! Заранее спасибо.
     
  2. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    Тебе нужно знать дискриптор этого меню. Если знаешь то просто всё.
    Code:
    var
     buf:array[0..255] of char;
     menu:hmenu;
     x,y:integer;
    begin
     menu:= дискриптор меню
     y:=GetMenuItemCount(menu);
     for x:=0 to y-1 do
       begin
         GetMenuString(menu,x,buf,256,mf_ByPosition);
         memo1.lines.add(buf);
     end;
    
    Если нужно продолжить выдирать из вложеного меню, то делаешь
    GetMenuItemInfo(Menu: HMenu; ID, Flags: Word; Info:TMenuItemInfo)ж
    и тогда Info.hSubMenu - будет дискриптором вложенного меню, с которым делаешь всё также что и с предыдущем.

    Главное чтобы твоё меню было уже вызвано. т.е. вызываешь его, находиш его дискриптор и вперед
     
  3. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    P.S. т.е. меню динамическое, то и заполняется при своём появлении, так что дискрипторы будут разные всегда.
     
  4. Vitaliy-55

    Vitaliy-55 New Member

    Joined:
    20 Mar 2009
    Messages:
    13
    Likes Received:
    0
    Reputations:
    0
    slesh, Спасибо те! Помог здорово!
     
  5. Vitaliy-55

    Vitaliy-55 New Member

    Joined:
    20 Mar 2009
    Messages:
    13
    Likes Received:
    0
    Reputations:
    0
    Еще вопрос. Как во время открытия динамического меню, проверить базу на наличие данных в ячейке?
     
  6. Vitaliy-55

    Vitaliy-55 New Member

    Joined:
    20 Mar 2009
    Messages:
    13
    Likes Received:
    0
    Reputations:
    0
    и если ячейка не пуста, тогда отметиь пункт меню(TMenuItem.checked)???
     
  7. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    CheckMenuItem юзай