Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 05.05.2012, 00:29
illya05 illya05 вне форума
Прохожий
 
Регистрация: 17.03.2012
Сообщения: 42
Репутация: -63
Стрелка Как отключить hotkeys

я создал хоткей:

Код:
unit Unit22;

interface

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

type
  Tfunk = class(TForm)
    GroupBox1: TGroupBox;
    Label1: TLabel;
    CheckBox1: TCheckBox;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    { Private declarations }

    hotkey1: Integer;
procedure WMHotKey(var Msg : TWMHotKey); message WM_HOTKEY; //хоткей нарки
  public
    { Public declarations }
  end;

var
  funk: Tfunk;

implementation

{$R *.dfm}

procedure Tfunk.FormCreate(Sender: TObject);
const MOD_CONTROL = 2;
VK_F2 = 113;   //нарка
begin
hotkey1 := GlobalAddAtom('Hotkey1');   //нарка
RegisterHotKey(handle, hotkey1, 0, VK_F2);   //нарка
end;

procedure Tfunk.FormDestroy(Sender: TObject);
begin
UnRegisterHotKey(handle, hotkey1);   //нарка
end;

procedure Tfunk.WMHotKey (var Msg : TWMHotKey);
begin
if msg.HotKey = hotkey1 then keybd_event(50,0,0,0);   //нарка
if msg.HotKey = hotkey1 then keybd_event(51,0,0,0);   //нарка
if msg.HotKey = hotkey1 then keybd_event(52,0,0,0);   //нарка
if msg.HotKey = hotkey1 then keybd_event(50,0,keyeventf_keyup,0 );   //нарка
if msg.HotKey = hotkey1 then keybd_event(51,0,keyeventf_keyup,0 );   //нарка
if msg.HotKey = hotkey1 then keybd_event(52,0,keyeventf_keyup,0 );   //нарка
end;

end.


но как мне в чек-боксе сделать так, чтобы он мог отключатся т.е. чтобы хоткей неработал
Ответить с цитированием
  #2  
Старый 05.05.2012, 00:37
Аватар для YVitaliy
YVitaliy YVitaliy вне форума
Местный
 
Регистрация: 14.12.2011
Сообщения: 481
Версия Delphi: Borland Delphi7
Репутация: 17
По умолчанию

Цитата:
Сообщение от illya05
я создал хоткей:
Рассмешил!!! Зачем вторую тему создал, если вопрос звучал и в предидущей? Если занялся программированием, то хоть чуть-чуть включай мозги.

Цитата:
Код:
RegisterHotKey(handle, hotkey1, 0, VK_F2);
Код:
UnRegisterHotKey(handle, hotkey1);
- а эт че такое?
Ответить с цитированием
  #3  
Старый 05.05.2012, 00:41
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Что мешало написать это самому?
Код:
var
  HotKey : HATOM;

procedure TForm1.CheckBox1Click(Sender: TObject);
begin
  if CheckBox1.Checked then
  begin
    HotKey := GlobalAddAtom('Hotkey1');   //нарка
    RegisterHotKey(Handle, HotKey, 0, VK_F2);   //нарка
  end
  else
  begin
    UnRegisterHotKey(Handle, HotKey);
    GlobalDeleteAtom(HotKey);
  end;
end;

procedure Tfunk.WMHotKey (var Msg : TWMHotKey);
begin
  if msg.HotKey = HotKey then keybd_event(50, 0, 0, 0);   //нарка
  if msg.HotKey = HotKey then keybd_event(51, 0, 0, 0);   //нарка
  if msg.HotKey = HotKey then keybd_event(52, 0, 0, 0);   //нарка
  if msg.HotKey = HotKey then keybd_event(50, 0, keyeventf_keyup, 0);   //нарка
  if msg.HotKey = HotKey then keybd_event(51, 0, keyeventf_keyup, 0);   //нарка
  if msg.HotKey = HotKey then keybd_event(52, 0, keyeventf_keyup, 0);   //нарка
end;
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #4  
Старый 05.05.2012, 10:58
illya05 illya05 вне форума
Прохожий
 
Регистрация: 17.03.2012
Сообщения: 42
Репутация: -63
По умолчанию

Цитата:
Сообщение от angvelem
Что мешало написать это самому?
Код:
var
  HotKey : HATOM;

procedure TForm1.CheckBox1Click(Sender: TObject);
begin
  if CheckBox1.Checked then
  begin
    HotKey := GlobalAddAtom('Hotkey1');   //нарка
    RegisterHotKey(Handle, HotKey, 0, VK_F2);   //нарка
  end
  else
  begin
    UnRegisterHotKey(Handle, HotKey);
    GlobalDeleteAtom(HotKey);
  end;
end;

procedure Tfunk.WMHotKey (var Msg : TWMHotKey);
begin
  if msg.HotKey = HotKey then keybd_event(50, 0, 0, 0);   //нарка
  if msg.HotKey = HotKey then keybd_event(51, 0, 0, 0);   //нарка
  if msg.HotKey = HotKey then keybd_event(52, 0, 0, 0);   //нарка
  if msg.HotKey = HotKey then keybd_event(50, 0, keyeventf_keyup, 0);   //нарка
  if msg.HotKey = HotKey then keybd_event(51, 0, keyeventf_keyup, 0);   //нарка
  if msg.HotKey = HotKey then keybd_event(52, 0, keyeventf_keyup, 0);   //нарка
end;

[Error] Unit22.pas(28): Undeclared identifier: 'HATOM'
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 00:39.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter