Форум программистов, компьютерный форум, киберфорум
Наши страницы

C++ Builder

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.87
mazahaka2401
0 / 0 / 0
Регистрация: 13.02.2012
Сообщений: 26
#1

Как можно присвоить клавишу к пунктам MainMenu - C++ Builder

02.03.2012, 21:10. Просмотров 1967. Ответов 26
Метки нет (Все метки)

Ка можно присвоить клавишу к пунктам MainMenu?
Например: в MainMenu есть пункты Новая игра и Выход я хочу чтобы действия этих пунктов осуществлялись при нажатии клавиш F2 и Esc. Подскажите как это можно реализовать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.03.2012, 21:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как можно присвоить клавишу к пунктам MainMenu (C++ Builder):

Как назначить ShortCut динамически создаваемым пунктам меню MainMenu - C++ Builder
Привет всем. Возле программы есть пользовательская папка с текстовыми файлами. При запуске проги происходит создание пользовательского...

Как можно заблокировать MainMenu? - C++ Builder
Как можно заблокировать MainMenu? Меню должно быть видно,а не скрыто как в VISIBLE!!

Как можно быстро присвоить каждому элементу структуры значение пустой строки - C++ Builder
Всем доброе время суток! Возник такой вот вопросик: есть структура struct TPeoples {String Num; String FIO; String Doc;...;} P; из 30 с...

Как изменить свойство элемента MainMenu - C++ Builder
Привет всем подскажите как изменить свойство например Caption элемента MainMenu1?? Например N1. Так не получается...

Как сделать обработчик для MainMenu - C++ Builder
Сделал обработчик кнопки, большой код, а можно как то реализовать это действие в MainMenu не копирую туда весь код?

У меня есть менюшки от MainMenu, как мне назначить им хоткеи? - C++ Builder
Доброго времени суток! У меня есть менюшки от MainMenu, как мне назначить им хоткеи?

26
Limit-ED-itioN
5 / 5 / 0
Регистрация: 12.02.2012
Сообщений: 44
02.03.2012, 21:43 #2
C++
1
2
#define VK_F2 0x71
#define VK_ESCAPE 0x1B
C++
1
2
3
4
5
void __fastcall TForm1::N9Click(TObject *Sender)
{
//нажали кнопку "игра" в меню
игра началась...
}
На форме1 в Properties - KeyPrewiew=true

потом выбираешь Events - OnKeyUp и в пустой ячейке справа даблклик...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void __fastcall TForm1::FormKeyUp(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
if (Key==VK_F2) 
{
ShowMessage("нажали f2");
N9Click->Click();
}
if (Key==VK_ESCAPE)
{
ShowMessage(" нажали Esc");
N*Click->Click();// вместо * номер кнопки... по аналогии как выше...
}
}
0
mazahaka2401
0 / 0 / 0
Регистрация: 13.02.2012
Сообщений: 26
02.03.2012, 22:17  [ТС] #3
Цитата Сообщение от Limit-ED-itioN Посмотреть сообщение
#define VK_F2 0x71
#define VK_ESCAPE 0x1B

C++
1
2
3
4
5
6
void __fastcall TForm1::N9Click(TObject *Sender)
{
//нажали кнопку "игра" в меню
игра началась...
}
//---------------------------------------------------------------------------
На форме1 в Properties - KeyPrewiew=true

потом выбираешь Events - OnKeyUp и в пустой ячейке справа даблклик...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//---------------------------------------------------------------------------
 
void __fastcall TForm1::FormKeyUp(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
if (Key==VK_F2) 
{
ShowMessage("нажали f2");
N9Click->Click();
}
if (Key==VK_ESCAPE)
{
ShowMessage(" нажали Esc");
N*Click->Click();// вместо * номер кнопки... по аналогии как выше...
}
}
//---------------------------------------------------------------------------
при запуске программы билдер сразу ругается на начало ф-ции
0
Limit-ED-itioN
5 / 5 / 0
Регистрация: 12.02.2012
Сообщений: 44
02.03.2012, 22:29 #4
что именно пишет?
0
mazahaka2401
0 / 0 / 0
Регистрация: 13.02.2012
Сообщений: 26
02.03.2012, 22:51  [ТС] #5
Цитата Сообщение от Limit-ED-itioN Посмотреть сообщение
FormKeyUp
это что??

Добавлено через 19 минут
Цитата Сообщение от Limit-ED-itioN Посмотреть сообщение
что именно пишет?
[C++ Error] Unit1.cpp(20): E2316 '_fastcall TForm1::FormKeyUp(TObject *,unsigned short &,TShiftState)' is not a member of 'TForm1'
[C++ Error] Unit1.cpp(20): E2141 Declaration syntax error
[C++ Error] Unit1.cpp(30): E2190 Unexpected }
[C++ Error] Unit1.cpp(30): E2190 Unexpected }
0
LK
Заблокирован
02.03.2012, 22:53 #6
Цитата Сообщение от mazahaka2401 Посмотреть сообщение
это что??
mazahaka2401, это - F1 .
И вот это
[C++ Error] Unit1.cpp(20): E2316 '_fastcall TForm1::FormKeyUp(TObject *,unsigned short &,TShiftState)' is not a member of 'TForm1'
надо не копировать и вставлять, а создать обработчик в инспекторе объектов и вставить туды код.
А вот это
[C++ Error] Unit1.cpp(30): E2190 Unexpected }
[C++ Error] Unit1.cpp(30): E2190 Unexpected }
- разберитесь со скобками - где, сколько, для чего, есть ли пара.
А если короче - надо книгу.
0
mazahaka2401
0 / 0 / 0
Регистрация: 13.02.2012
Сообщений: 26
02.03.2012, 23:02  [ТС] #7
Цитата Сообщение от LK Посмотреть сообщение
mazahaka2401, это - F1 .
И вот этонадо не копировать и вставлять, а создать обработчик в инспекторе объектов и вставить туды код.
А вот это- разберитесь со скобками - где, сколько, для чего, есть ли пара.
А если короче - надо книгу.
хотелось бы поподробнее про обработчик.
0
LK
Заблокирован
02.03.2012, 23:07 #8
Поподробнее:
Архангельский А.Я. Программирование в С++ Builder.
Есть в сети.
0
mazahaka2401
0 / 0 / 0
Регистрация: 13.02.2012
Сообщений: 26
02.03.2012, 23:13  [ТС] #9
Цитата Сообщение от LK Посмотреть сообщение
Поподробнее:
Архангельский А.Я. Программирование в С++ Builder.
Есть в сети.
я конешно понимаю , что не всё легко даётся но мне сейчас это нужно по быстрому сделать.
нет времени читать книгу.
помоги пожалуйста, если ты разбираешься то у тебя это много времени не займёт.
0
Limit-ED-itioN
5 / 5 / 0
Регистрация: 12.02.2012
Сообщений: 44
02.03.2012, 23:18 #10
С лева на екране 2 маленьких окошка, в нижнем - много параметров, внимательней прочти что я написал и сделай так же
0
mazahaka2401
0 / 0 / 0
Регистрация: 13.02.2012
Сообщений: 26
02.03.2012, 23:19  [ТС] #11
Цитата Сообщение от Limit-ED-itioN Посмотреть сообщение
С лева на екране 2 маленьких окошка, в нижнем - много параметров, внимательней прочти что я написал и сделай так же
я знаю какие это 2 окошка я не понял с обработчиком.
0
Limit-ED-itioN
5 / 5 / 0
Регистрация: 12.02.2012
Сообщений: 44
02.03.2012, 23:20 #12
Цитата Сообщение от mazahaka2401 Посмотреть сообщение
skype есть??? так проще будет общаться
может по телефону еще?!
0
BRcr
4009 / 2298 / 155
Регистрация: 03.02.2011
Сообщений: 5,064
Записей в блоге: 10
02.03.2012, 23:21 #13
Цитата Сообщение от mazahaka2401 Посмотреть сообщение
я конешно понимаю , что не всё легко даётся но мне сейчас это нужно по быстрому сделать.
нет времени читать книгу.
Тогда надо по-быстрому прочитать главу 5.3.2 События клавиатуры в указанной книге. Времени займет - максимум полчаса, крайне внимательно вчитываясь.
1
LK
Заблокирован
02.03.2012, 23:24 #14
mazahaka2401, ну вот почему у меня нашлось время не только картинки посмотреть, но и прочитать большинство из 1000-с-чем-то страниц, а у вас нет?

По поводу обработчика:
- слева в Билдере есть Инспектор объектов
- в Инспекторе объектов есть вкладка Events/События
- в дизайнере кликаете на свободном месте в форме
- переходите на вкладку Events/События , которая уже отображает необходимые события для формы
- на этой вкладке должно быть что-нибудь со словами KeyUp
- делаете двойной клик мышью справа от этих слов
- в редакторе кода должны получить готовую заготовку - обработчик события OnFormKeyUp, вот такую:
C++
1
2
3
4
5
void __fastcall TForm1::FormKeyUp(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
  //...
}
Вместо точек вставляете свой код.
0
Limit-ED-itioN
5 / 5 / 0
Регистрация: 12.02.2012
Сообщений: 44
02.03.2012, 23:25 #15
захадиш в окошке - Events - OnKeyUp

(справа будут пустые ячейки), напротив OnKeyUp жмешь мышкой дваждыи открывается текст программ
вставляешь туда
C++
1
2
3
4
5
6
7
8
9
10
if (Key==VK_F2) 
{
ShowMessage("нажали f2");
N9Click->Click();
}
if (Key==VK_ESCAPE)
{
ShowMessage(" нажали Esc");
N*Click->Click();// вместо * номер кнопки... по аналогии как выше...
}
0
02.03.2012, 23:25
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.03.2012, 23:25
Привет! Вот еще темы с ответами:

Как программно поставить Enabled=false в некоторых пунктах MainMenu? - C++ Builder
Как программно поставить Enabled=false в некоторых пунктах MainMenu?

Как разместить главное меню (MainMenu) в любом месте формы - C++ Builder
Не могу разобраться с проблемой: на форме присутствует панель со свойством Align = alTop (она заменяет стандартный заголовок окна) ...

Как программно нажать клавишу [=] и [-]? - C++ Builder
Почти все поисковики перерыл, а ответа так и не нашел =( Мне нужно программно нажать клавиши и , те которые следуют за (1,2,3,4 ......

Как связать две формы? Чтобы при нажатии в MainMenu выскакивало окно. - C++ Builder
Немогу понять как связать две форм что бы при нажатие в MainMenu выскакивало окно


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru