Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

апуск и останов таймера кнопками с клавы?? [D7, WinXP]


AlexHawk ©   (2004-11-19 22:02:00) 

Не подскажите, как можно запустить или остановить таймер кнопкой с клавы например "Backspace" Или "Delete"
Т.е пока кнопка зажата он работает, как только отжали он выключился.
Подскажите пожалуйсто!!
Заранее СПАСИБО!


AlexHawk   (2004-11-21 03:49:00) [1]

О СПАСИБО, ЗАРАБОТАЛО!!!!


KilkennyCat   (2004-11-21 03:37:00) [2]


> Shift: TShiftState


а это возвращает состояние клавиш Альт, Шифт и Ктрл, чтобы можно было проверить комбинацию типа Alt+Enter

if (key = vk_Return) and (Shift in [ssAlt]) then ...


KilkennyCat   (2004-11-21 03:34:00) [3]

делаем проверку на клавиши, к примеру Enter:

if key = vk_Return then

и проверку, что таймер работает:

if not timer1.enabled then timer1.enabled := true;

в итоге:

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Ctrl: TShiftState);
begin
if (key = vk_Return) and (not Timer1.Enabled) then Timer1.Enabled := True;
end;


AlexHawk   (2004-11-21 03:31:00) [4]

Подскажите пожалуйсто как правильно сделать


KilkennyCat   (2004-11-21 03:30:00) [5]

да не огорчайтесь...

просто немного неверно:

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


AlexHawk   (2004-11-21 03:28:00) [6]

:(


KilkennyCat   (2004-11-21 03:27:00) [7]

все, практически...


AlexHawk   (2004-11-21 03:24:00) [8]

Чтож я не правильно тут сделал?

type

procedure FormKeyDown(Sender: TObject; var Key: Word;
Ctrl: TShiftState);


...

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Ctrl: TShiftState);
begin
Timer1.Enabled := True;
end;


KilkennyCat   (2004-11-21 03:21:00) [9]


> Palladin ©


Прошу прощения, виноват... надо было не альт выделить а шифт :)


KilkennyCat   (2004-11-21 03:19:00) [10]


> Palladin ©   (20.11.04 23:39) [5]
> Нет, это для Alt'а.
>
> Для Shift'а:
>
> procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
> Ctrl: TShiftState);
>
> procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
> Ctrl: TShiftState);


а еще мастер....

а вообще-то, я думал, что делают по-другому: таймер работает всегда, а вот действия внутре уже от GetKeyboardState... :)


Palladin   (2004-11-20 23:39:00) [11]

Нет, это для Alt'а.

Для Shift'а:

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Ctrl: TShiftState);

procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
Ctrl: TShiftState);


AlexHawk   (2004-11-20 23:17:00) [12]

Можно какой-нибудь простенький примерчик.


AlexHawk   (2004-11-20 23:15:00) [13]

Так это для Shift'a? Или нет...


Anatoly Podgoretsky   (2004-11-19 22:07:00) [14]

В чем проблема?


novice_man   (2004-11-19 22:07:00) [15]

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
 Shift: TShiftState);

procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
 Shift: TShiftState);


Наверх

Титульная страница Поиск, карта сайта Написать письмо