Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 03.10.2010
Сообщений: 31
1

Реакция на нажатую клавишу

29.11.2012, 22:45. Показов 1465. Ответов 14
Метки нет (Все метки)

Delphi
1
2
3
4
type
  TForm1 = class(TForm)
    Label1: TLabel;
    procedure FromKeyPress(Sender: TObject; var Key: Char; Shift: TShiftState);
Delphi
1
2
3
4
5
procedure TForm1.FromKeyPress(Sender: TObject; var Key: Char; Shift: TShiftState);
begin
If Key='w' then begin 
Label1.caption:='1';
end; end;
KeyPreviev:=true

Не могу понять почему не работает?
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.11.2012, 22:45
Ответы с готовыми решениями:

Считать нажатую клавишу
Можете подсказать, как в Java считать нажатую клавишу на клавиатуре? По типу как в C#:...

Подменить нажатую клавишу
Народ помогите пожалуйста как на c++ осуществить вот такую вещь...: чтобы при физическом нажатии...

Считать нажатую клавишу
Я когда-то это делал, но не помню, как. Помнится, там было что-то вроде uses GraphABC; ...

Событие на нажатую клавишу
Здравствуйте! Мне нужно отслеживать нажатие клавиши ESC и создать на неё событие, но отслеживать...

14
2474 / 1850 / 242
Регистрация: 14.09.2012
Сообщений: 5,981
Записей в блоге: 2
29.11.2012, 22:49 2
Скорее всего нажатая клавиша не в том регистре, лучше использовать OnKeyDown.
0
0 / 0 / 0
Регистрация: 03.10.2010
Сообщений: 31
30.11.2012, 09:54  [ТС] 3
Цитата Сообщение от angstrom Посмотреть сообщение
Скорее всего нажатая клавиша не в том регистре, лучше использовать OnKeyDown.
Он тоже не работает. В интернете написано, что должен быть Press.
0
607 / 407 / 8
Регистрация: 26.04.2012
Сообщений: 2,069
30.11.2012, 10:19 4
а может Вы язык на клаве на английский не поствили??
0
0 / 0 / 0
Регистрация: 03.10.2010
Сообщений: 31
30.11.2012, 10:28  [ТС] 5
Цитата Сообщение от Fatal Error Посмотреть сообщение
а может Вы язык на клаве на английский не поствили??
Это я тоже проверял.
0
607 / 407 / 8
Регистрация: 26.04.2012
Сообщений: 2,069
30.11.2012, 11:06 6
не знаю тогда... у меня все норм работает...
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
 
type
  TForm1 = class(TForm)
    Label1: TLabel;
    procedure FormKeyPress(Sender: TObject; var Key: Char);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
If Key='w' then
Label1.caption:='1';
end;
 
end.
0
2474 / 1850 / 242
Регистрация: 14.09.2012
Сообщений: 5,981
Записей в блоге: 2
30.11.2012, 11:49 7
Преимущество OnKeyDown в том, что нет разницы в каком регистре и в какой кодировке нажимается клавиша.
Delphi
1
2
3
4
5
6
7
8
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key = ord('W') then
    Label1.Caption := '1'
  else
    Label1.Caption := '0'
end;
заметьте, буква должна быть указана в верхнем регистре.
0
0 / 0 / 0
Регистрация: 03.10.2010
Сообщений: 31
30.11.2012, 14:25  [ТС] 8
У меня не работают ваши варианты кодов. Это может быть связано с клавиатурой или есть еще какие-нибудь настройки?

Добавлено через 55 минут
Нашел решение проблемы.

Нужно открыть форму, Object Inspector, вкладка Events, в окошечке против OnKeyPress кликните 2 раза.
0
0 / 0 / 0
Регистрация: 03.10.2010
Сообщений: 31
30.11.2012, 18:55  [ТС] 9
Но я столкнулся с новой проблемой. При запуске программы выходит сообщение:

...Access violation at adress 0х00406031: write of adress 0x00030ебс...
0
HanDi
30.11.2012, 19:02
  #10

Не по теме:

Цитата Сообщение от MasterCraft Посмотреть сообщение
Нашел решение проблемы.
Нужно открыть форму, Object Inspector, вкладка Events, в окошечке против OnKeyPress кликните 2 раза.
Ух ты ж блин :D

1
2474 / 1850 / 242
Регистрация: 14.09.2012
Сообщений: 5,981
Записей в блоге: 2
30.11.2012, 22:01 11
Цитата Сообщение от MasterCraft Посмотреть сообщение
У меня не работают ваши варианты кодов.

Но я столкнулся с новой проблемой
Не хочешь делать как советуют, изобретай свои велосипеды.
0
0 / 0 / 0
Регистрация: 03.10.2010
Сообщений: 31
01.12.2012, 00:11  [ТС] 12
Цитата Сообщение от angstrom Посмотреть сообщение
Не хочешь делать как советуют, изобретай свои велосипеды.
К чему тут история про велосипед?
0
2474 / 1850 / 242
Регистрация: 14.09.2012
Сообщений: 5,981
Записей в блоге: 2
01.12.2012, 00:19 13
Наверное к тому, что когда дают рабочий код, в ответ следует - "не работает, я изобрёл своё".
0
0 / 0 / 0
Регистрация: 03.10.2010
Сообщений: 31
01.12.2012, 10:46  [ТС] 14
Цитата Сообщение от angstrom Посмотреть сообщение
Наверное к тому, что когда дают рабочий код, в ответ следует - "не работает, я изобрёл своё".
Вы читаете через сообщение.
0
angstrom
01.12.2012, 12:36     Реакция на нажатую клавишу
  #15

Не по теме:

Цитата Сообщение от MasterCraft Посмотреть сообщение
Вы читаете через сообщение.
Это ваши домыслы, я всегда читаю все сообщения.

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.12.2012, 12:36

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Переменная, указывающая на нажатую клавишу
1. Есть ли в С# переменная, указывающая на нажатую клавишу? Например в Delphi я писал так вроде...

Как зациклить проверку на нажатую клавишу?
public static void Main(string args) { ConsoleKey K = Console.ReadKey().Key; ...

Как считать нажатую клавишу глобально?
Моя программа работает в фоновом режиме. Мне нужно считать нажатую клавишу, чтобы выполнить...

Как глобально подменить нажатую клавишу на другую
В старой компьютерной игре Diablo 1 нельзя менять управление в настройках. Буква "E" свободна....

Клавиатурный хук, отображающий нажатую клавишу, а не код
Нужен клавиатурный хук отображающий нажатую клавишу,не код!,пытался сделать это функцией ToAscii,но...

Как сохранить нажатую клавишу в переменную типа char?
Как сохранить нажатую клавишу в переменную типа char?


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

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

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