Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
 Аватар для Владимир_ВМ
128 / 109 / 103
Регистрация: 16.05.2011
Сообщений: 340

MainMenu, AutoCheked

23.12.2012, 07:38. Показов 1843. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Предположим я выбрал один из пунктов меню и стоит AutoCheked. Как теперь определить какой именно пункт меню был выбран?

Добавлено через 4 часа 0 минут
Можно ли это задать через цикл или надо проверять свойство cheked каждого пункта меню?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.12.2012, 07:38
Ответы с готовыми решениями:

mainmenu
как сделать что бы mainmanu был почеркнут (отделен от остольной формы), а не просто надписи на форме?

MainMenu
Здравствуйте, создаю динамично пункты меню, события в них идентичны друг другу. Пункты создаю на Form12, меню лежит на Form4. События к...

MainMenu
Добрый день всем) в очередной раз обращаюсь к вам за помощью) мы начали изучать MainMenu, так то ничего сложного, просто она для меня...

18
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
23.12.2012, 12:22
1.

Q:

How can find menuitems in menubar or submenu selected, with out OnClick events , like mouse move on menuitems?

A:

You have to subclass your form, then :
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
::TrackPopupMenu(...) // will send some messages
WM_EXITMENULOOP
WM_MENUSELECT
and
WM_COMMAND:
 
if (HIWORD(Msg.WParam) == 0) {
  if (PopupMenu1->Items->Items[0]->Command == LOWORD(Msg.WParam))
  {
    if (PopupMenu1->Items->Items[0]->OnClick)
      PopupMenu1->Items->Items[0]->OnClick(PopupMenu1);
  }
}
2.
C++
1
2
3
4
5
6
void __fastcall TForm1::WndProc(TMessage &msg)
{
  if(msg.Msg == WM_MENUSELECT)
    Label1->Caption="Item="+IntToStr(msg.WParamLo);
  TForm::WndProc(msg);
}
3.

MainMenu - главное меню
TMainMenu с обработчиком OnRightClick
1
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
23.12.2012, 14:54
Цитата Сообщение от Владимир_ВМ Посмотреть сообщение
Можно ли это задать через цикл или надо проверять свойство cheked каждого пункта меню?
C++
1
N1->Checked
Но почему бы сразу не обрабатывать по событию OnClick этого пункта меню ?
0
 Аватар для Владимир_ВМ
128 / 109 / 103
Регистрация: 16.05.2011
Сообщений: 340
23.12.2012, 18:32  [ТС]
Цитата Сообщение от Avazart Посмотреть сообщение
Но почему бы сразу не обрабатывать по событию OnClick этого пункта меню ?
Каждого пункта меню? У меня три пункта меню. в свою очередь в каждом по 7 пунктов. В свойстве caption каждого из 7 пунктов указан цвет. Я хотел зделать так чтоб определить какой из цветов выбран и задать его при рисовании круга.
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
23.12.2012, 18:51
Для выбора цвета есть специальные диалоги.

Цитата Сообщение от Владимир_ВМ Посмотреть сообщение
Каждого пункта меню? У меня три пункта меню. в свою очередь в каждом по 7 пунктов. В свойстве caption каждого из 7 пунктов указан цвет. Я хотел зделать так чтоб определить какой из цветов выбран и задать его при рисовании круга.
Один обработчик можно повесить на несколько событий, и по передаваемому параметру Sender узнавать какой пункт меню выбран.
0
 Аватар для Владимир_ВМ
128 / 109 / 103
Регистрация: 16.05.2011
Сообщений: 340
23.12.2012, 20:06  [ТС]
Все, нашел. Вот ссылка. http://cppbuilder.ru/articles/0170.php
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
23.12.2012, 20:29
Эт... не то ...можно проще

C++
1
2
3
4
5
6
7
8
/* Необходимо установить этот обработчик в инспекторе объектов на все пункты меню */
//---------------------------------------------------------------------------
void __fastcall TForm1::NxClick(TObject *Sender)
{
 TMenuItem* MI= dynamic_cast<TMenuItem*>(Sender);
 if(MI) ShowMessage( MI->Caption ); // Выдает название пункта меню на которой нажали
}
//---------------------------------------------------------------------------
LK опять влипил каКуето левую ссылку...
0
 Аватар для Владимир_ВМ
128 / 109 / 103
Регистрация: 16.05.2011
Сообщений: 340
23.12.2012, 22:02  [ТС]
А как это сделать
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
23.12.2012, 22:03
Что сделать? я только что код выше привел, Вы что издеваетесь ?
0
 Аватар для Владимир_ВМ
128 / 109 / 103
Регистрация: 16.05.2011
Сообщений: 340
23.12.2012, 22:14  [ТС]
Вместо NxClick будет название самого пункта?
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
23.12.2012, 22:16
Цитата Сообщение от Владимир_ВМ Посмотреть сообщение
Вместо NxClick будет название самого пункта?
Ну это зависит от того как назовёте
1
 Аватар для Владимир_ВМ
128 / 109 / 103
Регистрация: 16.05.2011
Сообщений: 340
23.12.2012, 22:18  [ТС]
Я наверно не коректно задал вопрос.
Цитата Сообщение от Avazart Посмотреть сообщение
Необходимо установить этот обработчик в инспекторе объектов на все пункты меню
Я про это имел ввиду.

Добавлено через 43 секунды
Все понял.
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
23.12.2012, 22:21
Через инспектор так :
Миниатюры
MainMenu, AutoCheked  
1
 Аватар для Владимир_ВМ
128 / 109 / 103
Регистрация: 16.05.2011
Сообщений: 340
23.12.2012, 22:21  [ТС]
А почему вариант с MainMenuP не подходит?. Мне показалось что это удобней
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
23.12.2012, 22:26
Цитата Сообщение от Владимир_ВМ Посмотреть сообщение
А почему вариант с MainMenuP не подходит?. Мне показалось что это удобней
Чем? Кучей кода ?

Добавлено через 2 минуты
Или вам нужна именно нажатие именно правой кнопкой мыши ?
1
 Аватар для Владимир_ВМ
128 / 109 / 103
Регистрация: 16.05.2011
Сообщений: 340
23.12.2012, 22:36  [ТС]
Мне вообще надо определить какой пункт меню выбран. И в зависимости от выбранного пункта задать цвет.
Вроде все получилось.
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
23.12.2012, 22:38
Ну я говорил это изначально не правильное решение (хотя бы потому что могу быть выбраны несколько пунктов сразу) для этого есть диалоги...
0
 Аватар для Владимир_ВМ
128 / 109 / 103
Регистрация: 16.05.2011
Сообщений: 340
23.12.2012, 22:44  [ТС]
Цитата Сообщение от Avazart Посмотреть сообщение
для этого есть диалоги
Этим пользоваться пока не умею
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
23.12.2012, 22:46
А что там уметь бери читай Архангельского и пробуй...

Добавлено через 1 минуту
http://h-l-l.ru/publ/53-1-0-231
ColorBox и ColorDialog
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.12.2012, 22:46
Помогаю со студенческими работами здесь

MainMenu
Как можно сделать в меин меню чтоб кнопка была с галочкой или сдвигалось в право с дальнейшим выбором кнопки или каким компонентом ето...

создание mainMenu
Создать проект: используя команду Environment Options задать форму с шагом пикселей Х=10 У=7. Ширина формы = 700, высота =500. Создать на...

MainMenu/PopupMenu
Доброго времени суток. Не могу никак понять, как программно создать подпункт в существующее MainMenu и PopupMenu. Пункты меню должны...

MainMenu,Bitmap
Пробую добавить картинку *.bmp в какойнибудь пункт подменю. Но ничего не выходит. Слева от названия пункта меню лишь только пустой...

Клик по MainMenu?
Программно по пункту по одному хотел.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru