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

MainMenu, AutoCheked

23.12.2012, 07:38. Показов 1802. Ответов 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
8484 / 6151 / 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
8484 / 6151 / 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
8484 / 6151 / 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
8484 / 6151 / 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
8484 / 6151 / 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
8484 / 6151 / 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
8484 / 6151 / 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
8484 / 6151 / 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
8484 / 6151 / 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
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru