Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Комбинации клавиш  (Прочитано 9269 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Harry
Команда клуба

ua
Offline Offline

« : 22-10-2003 19:02 » 

Столкнулся с необходимостью прописать для некоторых действий в программе клавиатурные комбинации. Что-то не выходит. В факах - тоже не нашел. Я попытался написать так:

procedure TfmPrihod.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if (Key=ord('U')) and (ssCtrl in Shift) then fmFind.Visible:=True;
end;

Т.е. по сочетанию CTRL+U должно появляться другое окно. Но этот код не работает. Подскажите, пожалуйста, как правильно написать.
Записан

Слабый пол силен в силу слабости сильного пола к слабому
Var-Alex
Гость
« Ответ #1 : 23-10-2003 04:12 » 

Создай Action и назначь ему HotKey. А если тебе надо что-бы твои гор клавиши работали дакже когда твоя программа не активна, то рой RegisterHotkey и иже с ними. В дельфовом хельпе есть.
Записан
DimOC
Гость
« Ответ #2 : 23-10-2003 05:25 » new

Просто у формы в OnKeyDown которой ты пишешь свой код с проверкой нажатия поставь свойство KeyPreview в True.
(форма будет первой перехватывать все нажатия клавиш)

Либо... есть еще один способ... когда я был неопытным и глупым, я создавал невидимый пункт в MainMenu и назначал ему ShortCut, а в процедуре выбора этого пункта уже писал что нужно делать. Улыбаюсь

Так что... сделать можно многое и через разные места. Улыбаюсь
Записан
Harry
Команда клуба

ua
Offline Offline

« Ответ #3 : 23-10-2003 06:43 » 

Класс, все работает  Улыбаюсь  А про второй способ - насчет MainMenu - я знал, но увы... на этой форме меню быть не должно  Отлично
Записан

Слабый пол силен в силу слабости сильного пола к слабому
Var-Alex
Гость
« Ответ #4 : 24-10-2003 05:38 » 

Что рабоатет? Про Action? Так ты ещё знай, что на один ХотКей может быть повешено несколько Action-ов, только так, что-бы они небыли активны в одно время. Свойство Enabled выставлять хорошо в событии Taction.OnUpdate...  Улыбаюсь
Записан
Harry
Команда клуба

ua
Offline Offline

« Ответ #5 : 24-10-2003 06:17 » 

Action не пробовал еще, просто как советовал DimOK, поставил OnKeyDown в True и этого хватило. Но для собственного развития попробуи и другие методы  Улыбаюсь
Записан

Слабый пол силен в силу слабости сильного пола к слабому
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines