03.02.2012, 15:56 | #1 |
Участник
|
Программно показать MenuButton
Если в дизайне закрыть (visible=false) все пункты меню, входящие в MenuButton, то он не выводится на форме, даже если некоторые пункты потом включить программно.
Как заставить MenuButton отобразиться? |
|
03.02.2012, 16:15 | #2 |
Участник
|
Попробуйте рецепт из этой темы Grid пропадает
|
|
03.02.2012, 16:18 | #3 |
Молодой, подающий надежды
|
А зачем его выводить, если все его пункты будут скрыты? Если нужно отображать только часть пунктов, то сделайте всем Visible = Yes, AutoDeclaration = Yes, а в MenuButton.clicked() управляйте видимостью контролов, как душе угодно до вызова super(). Кстати если таким образом их все скрыть, то MenuButton будет на форме.
Последний раз редактировалось pedrozzz; 03.02.2012 в 16:20. |
|
03.02.2012, 16:31 | #4 |
Участник
|
Цитата:
Я один пункт всегда оставлял видимым и программно его скрывал. Все работало пока не закрыли доступ к этому пункту. |
|
03.02.2012, 16:34 | #5 |
Участник
|
Цитата:
Сообщение от S.Kuskov
Попробуйте рецепт из этой темы Grid пропадает
PrintMenuButton.buttonDisplay(true); PrintMenuButton.displayControl(); не помогает |
|
03.02.2012, 16:36 | #6 |
Участник
|
Цитата:
Один раз запрограммируете, зато просто, эффективно, интуитивно.
__________________
Ivanhoe as is.. |
|
03.02.2012, 16:49 | #7 |
Участник
|
Ну не один раз, а при добавлении нового отчета писать для каких типов его оставлять открытым. Сейчас я вставил отчет в нужную ветку case и все.
В общем дело не в этом. Тут больше спортивный интерес. АХ автоматом закрывает кнопку и не хочет ее открывать. В прочем, как и автоматом убирать, если программно скрыть все пунткы. |
|
03.02.2012, 17:01 | #8 |
Участник
|
Может конечно я чего-то не до конца понял, но почему не сделать так, чтобы вообще не нужно было каждый раз программировать. Например, заведите табличку, куда записывайте название отчета и имя его menuitem, потом по этой табличке создаете программно пункты меню в MenuButton. Как создавать пункты меню можно посмотреть на форме документооборота.
Можно вообще без таблицы, но тогда menuitem отчетов придется называть типа MyReport1, MyReport2 ... Потом искать все узлы в АОТ, имя которых начинается на MyReport и создавать по ним пункты меню. Label для пункта меню можно из menuitem достать. |
|
03.02.2012, 17:19 | #9 |
Участник
|
делается все просто на MenuButton.clicked() до супера:
X++: boolean printMenuItem1visible; ... boolean printMenuItemNvisible; switch (Type) { case type1: printMenuItem1visible = true; break; case type3: printMenuItem1visible = true; printMenuItemNvisible = true; break; ... case typeM: printMenuItemNvisible = true; break; } PrintMenuItem1.visible(printMenuItem1visible); ... PrintMenuItemN.visible(printMenuItem1visible); |
|
Теги |
menubutton |
|
|