Текущий архив: 2002.12.05;
Скачать: CL | DM;
Вниз
Необходимо в Runtime показать SubMenu у PopupMenu Найти похожие ветки
← →
Semion (2002-11-25 14:18) [0]Проблема такая: нужно на Action повесить показ SubMenu в PopupMenu. При этом само PopupMenu можно и не показывать (в принципе пофиг). Чего-тоо все перепробовал и все бус толку.
← →
Игорь Шевченко © (2002-11-25 16:15) [1]Чего-то странного хочешь ?
Или поподробнее объяснить не получается ?
← →
mrcat © (2002-11-25 16:17) [2]>>При этом само PopupMenu можно и не показывать
подробнее можно проблему описать?
← →
Semion (2002-11-25 18:20) [3]Видимо плохо объяснил. Ничего особенно странного я не хочу :).
Ситуация такая - есть меню. В нем 2 пункта: Удалить и Добавить. Пункт Добавить открывает подменю. Мне нужно, что бы на нажатие Ctrl+Ins появлялось мое меню с уже открытым подменю Добавить.
Как это сделать - никак не могу найти.
Вроде нашел API - функцию HiliteMenuItem, но проблема в том, что после того, как я говорю PopUp основному меню, то программа останавливает до тех пор, пока не закроется окно с меню, соответственно не доходит дело и до HilitePopupMenu.
← →
Marcus (2002-11-25 18:25) [4]Один из вариантов решения - юзать TActionList. Тогда можно одно действие размножить по любому кол-ву PopupMenu без дублирования OnClick. Да и запрещать/разрешать пункты легче будет.
А можно на лету формировать это подменю "Создать" на событие OnPopup основного меню
← →
Владислав © (2002-11-25 19:21) [5]Чего-то я не понимаю в этой жизни :(
Popup menu раскрывается, если пользователь щелкает правой кнопкой мыши по какому-то объекту. Именно такой реакции программы пользователь и будет ожидать. Существует единственная клавиша на клавиатуре, от которой юзер может ожидать всплывающее меню. На кой придумывать такой изврат?! Если уж и надо что-то отобразить на нажатие Ctrl+Ins, то лучше отобразить диалоговое окно. А чтобы не дублировать код, можно использовать класс TAction.
← →
Semion (2002-11-26 11:09) [6]Владислав, спасибо, что рассказли мне, когда именно обычно появляется Popup Menu :) В моей ситуации пользователь при работе с гридом должен иметь возможность добавить в него элемент. Однако элементы грида разнотипны (пожалуйста, не говорите, что это нехорошо - так надо :) )Если он нажмет правую кнопку мыши на этом гриде, то появляется PopUp Menu, в котором у него есть выбор - "удалить", "добавить". Добавить - открывает подменю с типами объектов, которые он может добавить в данный момент. Однако пользователь может нажать Ctrl+Del чтобы удалить элемент и Ctrl+Ins чтобы добавить. Я хочу сделать так, чтобы пользователю было удобно добавлять - нажав Ctrl+Ins он должен увидеть уже знакомое ему меню выбора типа объекта, а не какое-то левое диалоговое окно с той же самой функциональностью, что и у меню.
Action"ы я естественно использую.
Вариант создания в DesignTime второго меню, состоящего из элементов подменю "Добавить" рассматривается как капитуляция :)
← →
Игорь Шевченко © (2002-11-26 12:52) [7]Лучше капитулировать. Хотя бы потому, что разбираться в исходном коде программы будет потом проще...Или, например, сделать в ActionList категории для меню и строит меню динамически, тогда изменения в одном ActionList"е (вдруг новые типы объектов для добавления появятся) сами отразятся в меню, без дополнительных исправлений кода.
Страницы: 1 вся ветка
Текущий архив: 2002.12.05;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.011 c