Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.03.11;
Скачать: [xml.tar.bz2];

Вниз

Как сделать форму всегда   Найти похожие ветки 

 
greenrul   (2002-02-24 14:55) [0]

Есть компонент, который ПРЕКРАСНО "ловит" нажатия нужных клавиш - стоит форму в трей отправить, он уже ниче не ловит 8( P*L*E*A*S*E H*E*L*P


 
copyr25   (2002-02-24 16:32) [1]

А зачем компонент?
Сами зарегистрируйте свои нужные клавиши.
const
XKey = 101; YKey=102;
type
TForm1 = class(TForm)
procedure WMHotKey(var Msg : TWMHotKey); message WM_HOTKEY;
procedure FormActivate(Sender: TObject);
...
procedure TForm1.WMHotKey (var Msg : TWMHotKey);
begin
if Msg.HotKey = XKey then чего-то делаем;
if Msg.HotKey = YKey then чего-то делаем;
end;

procedure TForm1.FormActivate(Sender: TObject);
begin
RegisterHotKey(Handle, XKey, 0, VK_RETURN);
RegisterHotKey(Handle, YKey, 0, VK_SPACE);
// ну, например:)
end;


 
greenrul   (2002-02-24 17:05) [2]

А почему 101, 102 и что вообще эти целые числа значят?


 
greenrul   (2002-02-24 17:09) [3]

Усе, понял - типа идентификатор для каждого Хука (а не для клавиши)


 
greenrul   (2002-02-24 17:12) [4]

у меня вопрос - а как строчку типа Ctrl+Alt+C в VK_* и пр. преобразовать?


 
greenrul   (2002-02-24 17:23) [5]

А Комбинации всеравно не обрабатывает -
RegisterHotKey(Handle, 101, 0, VK_CONTROL+Ord("A"));
нет реакции, а вот если отдельно -
RegisterHotKey(Handle, 101, 0, Ord("A"));
RegisterHotKey(Handle, 101, 0, VK_CONTROL);



 
copyr25   (2002-02-24 18:30) [6]

Ну, например так: на последовательное нажатие F1+F2+F3.
Можно смеяться сколько угодно, но ведь работает:)))
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Controls, Forms,
ExtCtrls, StdCtrls;
const
XKey = 101; YKey=102; ZKey = 103;
type
TForm1 = class(TForm)
procedure WMHotKey(var Msg : TWMHotKey); message WM_HOTKEY;
procedure FormActivate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1; i: byte;

implementation

{$R *.DFM}
procedure TForm1.WMHotKey (var Msg : TWMHotKey);
begin
if Msg.HotKey = XKey then i:=1;
if (Msg.HotKey = YKey) and (i=1) then i:=2;
if (Msg.HotKey = ZKey) and (i=2) then Close;
end;
procedure TForm1.FormActivate(Sender: TObject);
begin
i:=0;
RegisterHotKey(Handle, XKey, 0, VK_F1);
RegisterHotKey(Handle, YKey, 0, VK_F2);
RegisterHotKey(Handle, ZKey, 0, VK_F3);
end;

end.


 
Deus   (2002-02-24 19:04) [7]

Думаю, Вам тоже нужны хуки:
http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1014485066&n=0


 
greenrul   (2002-02-25 11:39) [8]

Жалко что сторонние компоненты приходится юзать.
соpyr25 - вы правы, смеятьля можно долго 8)

а не проще вместо
if Msg.HotKey = XKey then i:=1;
if (Msg.HotKey = YKey) and (i=1) then i:=2;
if (Msg.HotKey = ZKey) and (i=2) then Close;

написать
if (Msg.HotKey = XKey) and (Msg.HotKey = YKey) and (Msg.HotKey = ZKey) then Close;


 
greenrul   (2002-02-25 12:17) [9]

2Deus - на самом деле компонента фиговая - проще через WinAPI.
там надо мучаться с переводом из VirtualKeyCode в норм. стринг, м нельзя проверить, ккакие клавишы еще зажаты


 
copyr25   (2002-02-25 12:49) [10]

greengul: Не проще. Попробуйте Ваш тройной if. Close не получится, когда нажимаются
клавиши...



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.03.11;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.004 c
14-32562
Valetta
2002-01-05 23:57
2002.03.11
Помогите, пожалуйста, начать самообучение!


14-32576
Вадим
2002-01-24 14:50
2002.03.11
Что делать, если ничего не хочется делать?


14-32542
kaif
2002-01-24 03:59
2002.03.11
SHIFT+DELETE мои апплодисменты!!


1-32439
Light Elf
2002-02-22 13:52
2002.03.11
Жирный текст в Popup меню.


1-32494
AlexMey
2002-02-25 01:25
2002.03.11
Вопрос по поводу конвертирования string во float и про функцию StrToFloat()





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский