Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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
6-14702
DenKop
2002-09-29 04:28
2002.12.05
CGI


14-14737
Kosmach
2002-11-14 10:56
2002.12.05
Dial-up server win95


7-14850
EleKtroNik
2002-09-29 20:56
2002.12.05
Колличество дисков


8-14692
frum
2002-08-15 09:42
2002.12.05
Zoomer - ЛУПА


1-14666
lionkiller
2002-11-25 13:58
2002.12.05
Новая компонента