|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Buttons и клавиша Space
Здравствуйте! Хочу спросить как сделать следующее: при нажатии на пробел нажималась button1, при повторном нажатии - button2. Знаю, что код не сложный, но все же скажите как это правильно сделать. Спасибо!
|
#2
|
||||
|
||||
В каком-нибудь onKeyDown считать нажатия и соответственно вызывать ButtonX.Clicked.
jmp $ ; Happy End! The Cake Is A Lie. |
#3
|
||||
|
||||
Да не пройдёт всё это. Какой контрол будет в фокусе, тот и отработает и плевать он хотел на OnKeyDown.
Мне представляется несколько вариантов: 1. Отказаться от клавиши Space. 2. Отказаться от TButton в пользу графических контролов (TSpeedButton). 3. Использовать THotKey. Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. Последний раз редактировалось angvelem, 26.12.2012 в 01:34. |
#4
|
|||
|
|||
Цитата:
|
#5
|
||||
|
||||
Стандартный, на вкладке Win32.
Есть ещё вариант, использовать функцию API - RegisterHotKey. Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#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, или принудительно фокус передавать сл. контролу.
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
Этот пользователь сказал Спасибо M.A.D.M.A.N. за это полезное сообщение: | ||
Dmitry_DM (26.12.2012)
|
#9
|
||||
|
||||
Цитата:
Код:
press_cnt := 1 - press_cnt; jmp $ ; Happy End! The Cake Is A Lie. |
#10
|
|||
|
|||
Цитата:
|
#11
|
||||
|
||||
так что ли
Поживу - увижу, Доживу - узнаю, Выживу - учту. [P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
|
Этот пользователь сказал Спасибо Yurk@ за это полезное сообщение: | ||
Dmitry_DM (26.12.2012)
|
#12
|
|||
|
|||
Цитата:
|
#13
|
|||
|
|||
Обработчик-то форме присвоить надо было, а не просто скопировать код...
|
#14
|
|||
|
|||
Цитата:
|