Главная

Убрать item из Menu

Здравствуйте, господа и дамы!

У меня возникла следующая проблема. Имеется программа, в которой по ходу дела требуется добавить и убирать items из менюшки. Создание BMenuItem и добавка их в BMenu проходит неплохо, но после того, как вызывается удаление, программа начинает "тормозить". Все меню (не только то, из которого я item удалил) открываются, но секунд через пять закрываются (сами), выбрать в них ничего нельзя, а программа через несколько минут вылетает с Segmentation Fault. Если меню не трогать, то всё работает нормально.

Удаление из меню происходит с помощью обычного RemoveItem (BMenu* <что–то>); delete <что–то>; (потому что я удаляю submenu), и оно выполняется нормально, потому что программа не падает сразу после этого. По Process Controller, ни один thread в программе не начинает использовать больше CPU, чем раньше, так что тормоза Menu Bar совершенно необъяснимы. По моим подсчётам, где–то утечка памяти, но прогонки через Debugger ничего не дали… Переписывал код, пытался собрать новое меню вместо старого — ничего не помогает. Что ещё можно сделать? Где–нибудь есть пример программы с добавляемыми и удаляемыми submenu, кроме Menuworld?

Re Menu Item

Напишите электронный адрес, пришлю пример. Правда, я убирал не BMenu, а BMenuItem.

Но при написании программ приходилось убирать полностью MenuBar, и ничего не тормозило и не вылетало.

А что, есть баг в BMenuBar?

Зачем его убирать?

Я пытался составить заново меню, из которого я убрал BMenu — не помогло.

Адрес — hitech_not_for_spam@abee.dyndns.org. Разумеется, _not_for_spam надо убрать.

Спасибо!

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Allowed HTML tags: <a> <em> <i> <img> <strong> <b> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и параграфы переносятся автоматически.

Подробнее о форматировании

CAPTCHA
Введите перечисленные символы, чтобы мы убедились, что вы не робот. Не требуется для зарегистрированных пользователей.
P
9
c
D
C
q
Enter the code without spaces and pay attention to upper/lower case.