Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
2 / 2 / 2
Регистрация: 11.05.2010
Сообщений: 84
1

Распознание нажатой клавиши

09.01.2011, 00:08. Показов 2382. Ответов 11
Метки нет (Все метки)

Доброго времени суток, подскажите какой должен быть код,чтобы после нажатие клашиши Ender, Нажималось кнопка1.
Я пробовал так, но у меня вылетает ошибка. Заранее спасибо.
в FormKeyPress сл. код :

Delphi
1
2
3
4
  if (Key=#13)  then
   begin
     Button1->Click();
end;
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.01.2011, 00:08
Ответы с готовыми решениями:

Глобальный перехват нажатой клавиши
Здравствуйте Ув. Программисты :) У меня такой вопрос; Как можно глобально перехватить нажатую...

Определить код нажатой клавиши
Надо узнать код клавиши. Пытался проделать так: int a; a=getch(); И посмотреть 'a' вотчем,...

Перевод кода нажатой клавиши в текст
Пишу клавиатурный логер записывает нажатые клавиши в текстовый файл. Есть функция short...

Как передать переменной значение нажатой клавиши с клавиатуры?
есть бесконечный цикл, после ввода структуры, выходит сообщение добавить еще одного человека ? если...

11
Супер-модератор
8767 / 2502 / 142
Регистрация: 07.03.2007
Сообщений: 11,856
09.01.2011, 00:26 2
Delphi
1
2
3
4
5
6
7
8
9
10
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
  if(Key = #13) then
    Button1Click(Sender);
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
    ShowMessage('ok');
end;
0
2 / 2 / 2
Регистрация: 11.05.2010
Сообщений: 84
09.01.2011, 00:45  [ТС] 3
Помоги пожалуйста, ошибка
С++Error E2451 Unidefined symbol 'begin'
С++Error E2379 Statement missing;
C++Error E2206 lllegal character '#' (0x23)
C++Error E2451 Unidefined symbol 'end'
0
LK
Заблокирован
09.01.2011, 04:00 4
а при чем здесь Delphi Pascal ?
C++
1
2
3
 if (GetKeyState(VK_RETURN))  {
  Button1->Click();
}
0
2 / 2 / 2
Регистрация: 11.05.2010
Сообщений: 84
09.01.2011, 07:54  [ТС] 5
Цитата Сообщение от LK Посмотреть сообщение
if (GetKeyState(VK_RETURN)) {
Button1->Click();
}
Код компилируется но не работает
1
517 / 305 / 58
Регистрация: 30.07.2008
Сообщений: 607
09.01.2011, 08:21 6
Цитата Сообщение от Nesta Посмотреть сообщение
Код компилируется но не работает
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
//---------------------------------------------------------------------------
void __fastcall TForm1::ApplicationEvents1Message(tagMSG &Msg,
      bool &Handled)
{
    if(Msg.message == WM_KEYDOWN)
    {
        if(Msg.wParam == VK_RETURN)
        {
            //Memo1->Lines->Add("asdasd");
            Buttom1-Click();
        }
    }
}
//---------------------------------------------------------------------------
0
LK
Заблокирован
09.01.2011, 10:12 7
блин, все надо разжевать
C++
1
2
3
4
5
6
7
8
9
10
11
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  MessageDlg("Как бы был нажат Батон1", mtInformation,TMsgDlgButtons()<< mbYes << mbNo, 0);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormKeyPress(TObject *Sender, wchar_t &Key)
{
  if (GetKeyState(VK_RETURN))  {
    Button1->Click();
  }
}
в примере от Lord_Voodoo ясно написано, хотя и не по-русски:
Pascal
1
procedure TForm1.FormKeyPress
0
Супер-модератор
8767 / 2502 / 142
Регистрация: 07.03.2007
Сообщений: 11,856
09.01.2011, 11:00 8
Nesta, вы для начала определитесь с языком - с++ или delphi
0
2 / 2 / 2
Регистрация: 11.05.2010
Сообщений: 84
09.01.2011, 16:08  [ТС] 9
Я пишу на С++. Я знаю куда нужно вписывать код для этого обработчика, у меня проблема в том ,что он не работает, т.е. при нажалии Enter не произходит нужных действий. Перепробовал все что было здесь описано. Может ли кто-нить скинуть исходник, либо залить куда-нить?
0
Супер-модератор
8767 / 2502 / 142
Регистрация: 07.03.2007
Сообщений: 11,856
09.01.2011, 16:38 10
для начала, ваш код - смесь дельфи и с++
своство формы keypreview ставим равным true
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//---------------------------------------------------------------------------
 
void __fastcall TForm1::FormKeyPress(TObject *Sender, char &Key)
{
  if (Key == 13)
    Button1Click(Sender);
 
 
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
   ShowMessage("ok");
}
//---------------------------------------------------------------------------
0
2 / 2 / 2
Регистрация: 11.05.2010
Сообщений: 84
09.01.2011, 17:02  [ТС] 11
Спасибо. Незнал что своство формы keypreview нужно ставим равным true
0
LK
Заблокирован
09.01.2011, 23:08 12
Пример ,
Вложения
Тип файла: zip vkreturn.zip (178.5 Кб, 18 просмотров)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.01.2011, 23:08

Код нажатой клавиши вывести как знак (буква, цифра)
Доброго времени суток. По нажатию кнопки вызывается функция,которой передается код нажатой...

прога, которая по нажатой клавише выводит ascii - код символа это клавиши или scan - код самой клавиши.
написать программу, которая по нажатой клавише выводит ascii - код символа этой клавиши или scan -...

Замена нажатой клавиши
День добрый! Я залил клаву, и теперь некоторые клавиши не работают.. я их переместил на правую...

Код нажатой клавиши
Кто знает, как считать код нажатой клавиши для gcc? ищу что-то типа функции getch из библиотеки...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru