![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Здравствуйте! Хочу спросить как сделать следующее: при нажатии на пробел нажималась button1, при повторном нажатии - button2. Знаю, что код не сложный, но все же скажите как это правильно сделать. Спасибо!
|
|
#2
|
||||
|
||||
|
В каком-нибудь onKeyDown считать нажатия и соответственно вызывать ButtonX.Clicked.
|
|
#3
|
||||
|
||||
|
Да не пройдёт всё это. Какой контрол будет в фокусе, тот и отработает и плевать он хотел на OnKeyDown.
Мне представляется несколько вариантов: 1. Отказаться от клавиши Space. 2. Отказаться от TButton в пользу графических контролов (TSpeedButton). 3. Использовать THotKey. Последний раз редактировалось angvelem, 26.12.2012 в 01:34. |
|
#4
|
|||
|
|||
|
Цитата:
|
|
#5
|
||||
|
||||
|
Стандартный, на вкладке Win32.
Есть ещё вариант, использовать функцию API - RegisterHotKey. |
|
#6
|
|||
|
|||
|
Цитата:
|
|
#7
|
|||
|
|||
|
Цитата:
Код:
press_cnt : Integer;
...
press_cnt := 0;
Form.KeyPreview := True;
...
procedure TForm1.FormKeyPress(Sender : TObject; var Key : Char);
begin
if Key = ' ' Then
Begin
if press_cnt = 0 Then Button1Click(Sender) Else Button2Click(Sender);
press_cnt := Abs(press_cnt-1);
Key := #0;
End;
end;Profit!!! |
| Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
Dmitry_DM (26.12.2012)
| ||
|
#8
|
||||
|
||||
|
В обработчике OnKeyDown эмулировать нажатие кнопки tab, или принудительно фокус передавать сл. контролу.
|
| Этот пользователь сказал Спасибо M.A.D.M.A.N. за это полезное сообщение: | ||
Dmitry_DM (26.12.2012)
| ||
|
#9
|
||||
|
||||
|
Цитата:
Код:
press_cnt := 1 - press_cnt; ![]() |
|
#10
|
|||
|
|||
|
Цитата:
|
|
#11
|
||||
|
||||
|
так что ли
|
| Этот пользователь сказал Спасибо Yurk@ за это полезное сообщение: | ||
Dmitry_DM (26.12.2012)
| ||
|
#12
|
|||
|
|||
|
Цитата:
|
|
#13
|
|||
|
|||
|
Обработчик-то форме присвоить надо было, а не просто скопировать код...
|
|
#14
|
|||
|
|||
|
Цитата:
|