Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/41: Рейтинг темы: голосов - 41, средняя оценка - 4.54
1 / 1 / 0
Регистрация: 24.12.2010
Сообщений: 127

Button и нажатие их с помощью клавиш

30.04.2012, 03:55. Показов 8403. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
здраствуйте, у меня на форме есть две кнопки (button1 и button2)
нужно чтоб при нажатии на клавишу enter нажималась button1 а при нажатии на сочетании кнопок ctrl+enter нажималась button2

и по ходу вопроса, нужно ли какую то библиотеку подключать? где код должен находиться конкретно? в пределах:
C++
1
2
3
void __fastcall TForm::Button1Click (TObject *Sender)
{
}
или мож где в другом месте??
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.04.2012, 03:55
Ответы с готовыми решениями:

Нажатие клавиш
Вобщем, нужна Ваша помощь товарищи гуру. Юзер моей программы должен выбирать окно любой другой программы, в котором спустя некоторые...

Нажатие button в Form1 - изменения в Form2
Собственно из заголовка вроде понятна суть вопроса, тем не менее уточню: Столкнулся с проблемой - мне необходимо чтобы при нажатии...

Смена Caption при нажатие Button?
Здравствуйте ! Имеется - Panel1 и Button1 Нужно чтобы при нажатие Button1(скрыть) - Panel1 скрылась , Button1 поменяло имя (показать)...

7
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
30.04.2012, 05:57
Сюда пишете нужный вам код:
C++
1
2
3
4
void __fastcall TForm::Button1Click (TObject *Sender)
{
  /*супер-пупер код*/
}
В инспекторе объектов для формы устанавливаете KeyPreview в true . В обработчик события OnKeyPress для формы пишете:
C++
1
2
3
if (Key==VK_RETURN) { // или 13, или 0x0D
  Button1->Click();
}
Для бутон2 меняете условие:
C++
1
2
3
if (Shift.Contains(ssCtrl)&&Key==VK_RETURN) {
  Button2->Click();
}
А в библиотеку сходите, конечно, и библиотекаршу подключите, и книжечки потом вместе поищите, по С++ вобче, и по С++ Стройке, в частности .
1
1 / 1 / 0
Регистрация: 24.12.2010
Сообщений: 127
01.05.2012, 04:50  [ТС]
магическая штука keyPreview->true помогла здорово))

все работает но есть незадача когда жму ctrl+enter то выполняеться и обычная enter, простыми словами жметься и button2 и button1

как это устронить??
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
01.05.2012, 06:01
Может
C++
1
2
3
4
5
6
if (Key==VK_RETURN) { // или 13, или 0x0D
  Button1->Click();
}
else if (Shift.Contains(ssCtrl)&&Key==VK_RETURN) {
  Button2->Click();
}
поможет.
0
480 / 393 / 113
Регистрация: 24.04.2012
Сообщений: 1,632
Записей в блоге: 3
01.05.2012, 08:45
Лучше так
C++
1
2
if (Shift.Empty() && Key == VK_RETURN) {Button1->Click();}
if (Shift.Contains(ssCtrl) && Key == VK_RETURN) {Button2->Click();}
2
1 / 1 / 0
Регистрация: 24.12.2010
Сообщений: 127
02.05.2012, 01:40  [ТС]
LK, твой код не корректно работает, контрл-ентер вообще не включаеться

Bit_Man, твой код хороший)) более менее можно работать!!)) спасибо!!!)))
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
02.05.2012, 02:19
Цитата Сообщение от Bit_Man Посмотреть сообщение
Лучше так
C++
1
2
if (Shift.Empty() && Key == VK_RETURN) {Button1->Click();}
if (Shift.Contains(ssCtrl) && Key == VK_RETURN) {Button2->Click();}
Это уже не мой код, это код уважаемого Bit_Man .
0
 Аватар для QWIPQ
144 / 123 / 14
Регистрация: 10.10.2011
Сообщений: 366
Записей в блоге: 2
02.05.2012, 14:03
можно так:
1. пропиши
C++
1
2
3
4
5
void __fastcall TForm1::FormCreate(TObject *Sender)
{
    RegisterHotKey(Handle,0,MOD_CONTROL,VK_RETURN); //Ctrl + Enter
    RegisterHotKey(Handle,1,0,VK_RETURN); //Enter
}
2. вынеси на форму ApplicationEvents, создай событие OnMessage
C++
1
2
3
4
5
6
7
8
9
10
11
void __fastcall TForm1::ApplicationEvents1Message(tagMSG &Msg, bool &Handled)
{
    if ((Msg.message == WM_HOTKEY)&&(Msg.wParam == 0))
    {
        Button2->Click();
    }
    if ((Msg.message == WM_HOTKEY)&&(Msg.wParam == 1))
    {
        Button1->Click();
    }
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.05.2012, 14:03
Помогаю со студенческими работами здесь

Нажатие и удерживание клавиш
Незнаю как назвать даже тему. Но принцип программы такой. При нажимании на клавишу F11,нажимаются клавиша "W" и держится,до...

Реакция на нажатие клавиш
Хочу что бы при одновременном нажатии некоторой комбинации клавиш выполнялось какое то действиеvoid __fastcall TForm1::FormKeyDown(TObject...

Программное нажатие на Button, в Groupbox чужой программы
Помогите разобраться... Я создал 2 пробных программки, в первой поместил один button на форму, другой button в groupbox, из второй...

Последовательное создание Edit при нажатие на button
Помогите достроить программу для перехода на следующий Edit без продолжение копии. Я хочу что при каждом нажатии на Button появлялся...

Как запретить нажатие клавиш?
Как мне в моем проекте запретить нажатие следующих клавиш Alt + tab alt + Ctrl + del Alt + F4 Ctrl + Shift + Esc


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru