Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.04.2008, 11:34   #1
AngelOfDeath
Delphi/C++/Asm
Форумчанин Подтвердите свой е-майл
 
Аватар для AngelOfDeath
 
Регистрация: 28.03.2008
Сообщений: 358
Вопрос Как заставить программу реагтровать на нажатия клавиш?

Как заставить программу реагтровать на нажатия клавиш?
Например нажал A
И имя изменилось
PS Не бейте больно если неправильно сформулировал или задал ламерский вопрос
AngelOfDeath вне форума Ответить с цитированием
Старый 07.04.2008, 11:46   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Как заставить программу реагтровать на нажатия клавиш?
прописать соответствующий код в событии OnKeyХХХ а для формы поставить KeyPreview:=true;
Цитата:
И имя изменилось
Чье?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.04.2008, 11:50   #3
AngelOfDeath
Delphi/C++/Asm
Форумчанин Подтвердите свой е-майл
 
Аватар для AngelOfDeath
 
Регистрация: 28.03.2008
Сообщений: 358
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
И имя изменилось
Чье?
Не я это просто написал чтоб было более понятно(например Button1.Caption)
Можете привести полный пример кода или исходник?

Последний раз редактировалось AngelOfDeath; 07.04.2008 в 11:53.
AngelOfDeath вне форума Ответить с цитированием
Старый 07.04.2008, 12:00   #4
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Ну например у формы есть событие OnKeyDown, тогда

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Chr(Key)='a' then ....
end;
SERG1980 вне форума Ответить с цитированием
Старый 07.04.2008, 12:11   #5
AngelOfDeath
Delphi/C++/Asm
Форумчанин Подтвердите свой е-майл
 
Аватар для AngelOfDeath
 
Регистрация: 28.03.2008
Сообщений: 358
По умолчанию

Как сделать так чтоб когда программу сворачиваю в трей
Это срабатывало
AngelOfDeath вне форума Ответить с цитированием
Старый 07.04.2008, 12:12   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Я пожалуй всетки уточню и поправлю код Сержа.
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, StdCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
KeyPreview:=true;
end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if key=VkKeyScan('a') then
  Label1.Caption:=Label1.Caption+'a';
end;

end.
Яснышко, автор?

Цитата:
Как сделать так чтоб когда программу сворачиваю в трей
Это срабатывало
А вот это, ИМХО, через хуки.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.04.2008, 12:18   #7
AngelOfDeath
Delphi/C++/Asm
Форумчанин Подтвердите свой е-майл
 
Аватар для AngelOfDeath
 
Регистрация: 28.03.2008
Сообщений: 358
По умолчанию

Вот ещё один вопрос
Какой код чтоб программа реагировала на нажатие всех клавиш
И вписывало в Label

Ну чтоб не перечислять
Код:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if key=VkKeyScan('a') then
  Label1.Caption:=Label1.Caption+'a';
  if key=VkKeyScan('b') then
  Label1.Caption:=Label1.Caption+'b';
end;

end.

Последний раз редактировалось Stilet; 07.04.2008 в 12:41.
AngelOfDeath вне форума Ответить с цитированием
Старый 07.04.2008, 12:29   #8
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Если необходима реакция на комбинации клавиш ( горячие клавиши), то это одно. Если необходимо мониторить все нажатия, это другое. И по первому и по второму варианту на нашем форуме огромное кол-во информации.
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 07.04.2008, 13:20   #9
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
Label1.Caption:=Label1.Caption+chr( Key)
end;
а лучше Hook на клаву
SERG1980 вне форума Ответить с цитированием
Старый 07.04.2008, 23:58   #10
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
Сообщение

Цитата:
Сообщение от AngelOfDeath Посмотреть сообщение
Как сделать так чтоб когда программу сворачиваю в трей
Это срабатывало
Через хуки делать это необязательно, для этого есть HotKeys.
Регистрируете свои Хоткеи в системе, и наслаждаетесь.
___________________________________ _________________________
Поиск по форуму => "HotKey". Может найдёте у меня изменённый компонент HotKey, для получения кода клавишь, для их регистрации.
Alter вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Имитация нажатия клавиш Air Свободное общение 28 04.02.2010 12:38
Эмуляция нажатия нескольких клавиш -=Shad0www Общие вопросы Delphi 3 12.05.2008 08:13
Имитация нажатия комбинации клавиш Zeraim Win Api 15 05.05.2008 20:35
Проверка нажатия клавиш в компоненте Мемо|Delphi GAGARIN-NEW Помощь студентам 4 09.12.2007 19:59
программа по эмуляции нажатия клавиш sr_lexx Win Api 3 03.12.2007 15:40