Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.02.2012, 11:32   #1
IliaIT
Форумчанин
 
Аватар для IliaIT
 
Регистрация: 17.03.2009
Сообщений: 977
По умолчанию запрет двойного меню

Возникла ситуация в которой на форме вылазит второе меню после выбора первого.
Описание. на форме находятся
Код:
    GroupBox1: TGroupBox;
    Shape1: TShape;
    PopupMenu1: TPopupMenu;
    PopupMenu2: TPopupMenu;
    N1: TMenuItem;
    N2: TMenuItem;
В GroupBox1 в PopupMenu присвоено меню 2. а в Shape1 в событии MouseUp вызывается меню 1.

вопрос как сделать так что бы при вызывании меню 1 в Shape1 потом не отображалось меню 2.
Вложения
Тип файла: rar двойное меню.rar (3.1 Кб, 12 просмотров)
Интуитивно понятный интерфейс - это такой интерфейс, для работы с которым нужна недюжинная интуиция.
IliaIT вне форума Ответить с цитированием
Старый 10.02.2012, 11:52   #2
SovereignSun
Форумчанин
 
Регистрация: 22.11.2011
Сообщений: 127
По умолчанию

Просто очисти поле Popupmenu в groupbox1 и все
SovereignSun вне форума Ответить с цитированием
Старый 10.02.2012, 12:03   #3
IliaIT
Форумчанин
 
Аватар для IliaIT
 
Регистрация: 17.03.2009
Сообщений: 977
По умолчанию

а пример можно как во время вызова меню 1 очистить поле Popupmenu? что бы потом в другом месте groupbox1 можно было бы вызвать меню 2.
Интуитивно понятный интерфейс - это такой интерфейс, для работы с которым нужна недюжинная интуиция.
IliaIT вне форума Ответить с цитированием
Старый 10.02.2012, 12:10   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
procedure TForm1.Shape1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  GroupBox1.PopupMenu:=nil;
end;

procedure TForm1.GroupBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  GroupBox1.PopupMenu:=PopupMenu2;
end;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 10.02.2012, 13:50   #5
IliaIT
Форумчанин
 
Аватар для IliaIT
 
Регистрация: 17.03.2009
Сообщений: 977
По умолчанию

Спасибо большое натолкнули на мысль как выключить меню если названия груп боксов очень разные, а писать много не охота. то есть многим объектам присвоить одно событие.
Код:
procedure TForm1.Shape1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  //GroupBox1.PopupMenu:=nil;
PopupMenu2.AutoPopup:=false;
end;

procedure TForm1.GroupBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
 // GroupBox1.PopupMenu:=PopupMenu2;
PopupMenu2.AutoPopup:=true;
end;
Интуитивно понятный интерфейс - это такой интерфейс, для работы с которым нужна недюжинная интуиция.

Последний раз редактировалось IliaIT; 10.02.2012 в 14:00. Причина: поправил код
IliaIT вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запрет нажатия кнопки и запрет неправильного ввода данных De_Kurlzz Помощь студентам 1 15.06.2011 15:14
Циклический сдвиг двойного слова Vistar Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 17.03.2011 00:28
одиночный клик в списке вместо двойного Glen Свободное общение 19 22.02.2011 10:21
Блокировка двойного клика в JS tutor JavaScript, Ajax 2 19.01.2010 22:47
Блокировка двойного клика tutor JavaScript, Ajax 1 18.01.2010 22:47