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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.10.2015, 12:24   #11
KBO
Форумчанин
 
Регистрация: 11.06.2010
Сообщений: 525
По умолчанию

Доброе всем время суток,
а подскажите, почему все работает кроме кода "123", это - "F12"?

Код:
unit Unit1;

interface

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

const
    ID = WM_USER + 1;

type
  Tform_Test = class(TForm)
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
    procedure WM_HotKey(var Message:TMessage); message WM_HOTKEY;
  public
    { Public declarations }
  end;

var
  form_Test: Tform_Test;

implementation

{$R *.dfm}

procedure Tform_Test.FormCreate(Sender: TObject);
begin
  RegisterHotKey(Handle, 112, 0, 112); //for "Hot key" = "F1"
  RegisterHotKey(Handle, 113, 0, 113); //for "Hot key" = "F2"
  RegisterHotKey(Handle, 121, 0, 121);
  RegisterHotKey(Handle, 122, 0, 122);
  RegisterHotKey(Handle, 123, 0, 123); //for "Hot key" = "F12"
end;

procedure Tform_Test.FormDestroy(Sender: TObject);
begin
  UnregisterHotKey(Handle, 50);
  UnregisterHotKey(Handle, 112);
  UnregisterHotKey(Handle, 113);
  UnregisterHotKey(Handle, 121);
  UnregisterHotKey(Handle, 122);
  UnregisterHotKey(Handle, 123);
end;

procedure Tform_Test.WM_HotKey(var Message:TMessage);
begin
  case Message.WParam  of
    50: showmessage('key is push "2"');
    112: showmessage('key is push "F1"');
    113: showmessage('key is push "F2"');
    121: showmessage('key is push "F10"');
    122: showmessage('key is push "F11"');
    123: showmessage('key is push "F12"');
  end;
end;

end;

end.
Хотя если для "F12" использовать следующий код:

Код:
procedure Tform_Test.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key = VK_F12 then
    showmessage('key is push "F12"');
end;
все работает, аж бегом

Последний раз редактировалось KBO; 28.10.2015 в 13:44.
KBO вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вывести код нажатой клавиши fclmhooligan JavaScript, Ajax 0 22.10.2008 09:32
Какой нужно написать код,чтобы свернуть форму Bigtyoma Общие вопросы Delphi 2 08.09.2008 23:22
Чем отличается скан-код от виртуального кода клавиши? The_Darkness Помощь студентам 2 18.07.2008 17:01
Клавиши RealSHELS Общие вопросы Delphi 3 27.03.2008 22:32
Код клавиши... =*=|/|MM0PT@/\=*= Паскаль, Turbo Pascal, PascalABC.NET 3 19.01.2007 13:10