Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Горячие клавиши на форме 
V
    Опции темы
AHgpeu
Дата 24.5.2007, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 124
Регистрация: 6.4.2007

Репутация: нет
Всего: нет



Подскажите как в делфи на форму добавить событие какое-то при нажатии горячих клавиш..
Ctrl+X, например
Спасибо!
--------------------
ᆉᆈǀƿᆇᆆᆅᆂᆁᆇᆆ
PM MAIL   Вверх
Snowy
Дата 24.5.2007, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 31
Всего: 484



Брось на форму TActionManager.
Создай новый Action и назначь ему ShortCut
PM MAIL   Вверх
Sunvas
Дата 24.5.2007, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


Профиль
Группа: Участник
Сообщений: 3388
Регистрация: 12.3.2006
Где: Тосно

Репутация: 2
Всего: 89



AHgpeu, юзай поиск! Неоднократно обсуждалось.
Вот к примеру: http://forum.vingrad.ru/forum/topic-152735.html


--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
AHgpeu
Дата 24.5.2007, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 124
Регистрация: 6.4.2007

Репутация: нет
Всего: нет



бросил TActionManager.
че с ним дальше делать-не знаю))
--------------------
ᆉᆈǀƿᆇᆆᆅᆂᆁᆇᆆ
PM MAIL   Вверх
Snowy
Дата 24.5.2007, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 31
Всего: 484



Кликни по нему 2 раза и добавь новый Action
PM MAIL   Вверх
AHgpeu
Дата 24.5.2007, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 124
Регистрация: 6.4.2007

Репутация: нет
Всего: нет



сорри шо туплю..
но как терь назначить какое-то событие при нажатии этих клавиш?*
Все!
сэнк! разобрался...
Событие OnExecute

Это сообщение отредактировал(а) AHgpeu - 24.5.2007, 15:29
--------------------
ᆉᆈǀƿᆇᆆᆅᆂᆁᆇᆆ
PM MAIL   Вверх
Snowy
Дата 24.5.2007, 15:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 31
Всего: 484



Слева - в окошке Object TreeView найди ActionManager.
В нём будут созданные тобой экшены. Выбери нужный.
У Action'a есть пропертя ShortCut - вот и выбери там нужное сочетание.
В событиях у Actiona создай событие OnExecute - там пиши нужный код.

Добавлено через 9 минут и 23 секунды
user posted image
1. Бросаешь на форму ActionManager. Тыкаешь в него 2 раза. Вылазит окно редактирования действий.
2. Нажимаешь кнопку "Новое действие". Можешь создать несколько.
3. Это список созданных действий. Выбери одно из них и оно отобразится в инспекторе объектов.
4. Отредактируй пропертя действия как хошь. Создай в действиях событие OnExecute и пропиши туда свой код.
5. Вот здесь указывается твой хоткей.
6. Можешь выбирать действия, не открывая окно, а прямо в Object TreeView.
PM MAIL   Вверх
ils
Дата 24.5.2007, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 8.9.2006
Где: Москва

Репутация: нет
Всего: нет



А можно еще сделать по-другому smile 

У формы ставишь KeyPreview := True
Далее создаешь обработчик OnKeyDown у формы. В нем пишешь

Код

procedure TMyMegaProgramForm.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
    if ssCtrl in Shift then
        case Key of
        VK_INSERT: InsertButtonPressedProcedure;
        VK_X: CtrlXPressedProcedure;
        ord('A'): ButtonAPressed; // Но тут придется ловить каждый символ, что написан на кнопке клавы
        end;
end;


Но конечно, у экшенов есть свои преимущества.
PM MAIL ICQ   Вверх
ilya198293
Дата 7.8.2007, 06:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 170
Регистрация: 17.3.2007
Где: Сириус, созвездие Большого Пса

Репутация: нет
Всего: нет



А как можно сделать чтоб не зависимо от активного компонента при нажатии кнопки Enter нажималась определённая кнопка?
--------------------
Недавно пытался объяснить сыну, кто такой модератор. Сошлись на Мойдодыре.
PM MAIL   Вверх
ilya198293
Дата 7.8.2007, 12:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 170
Регистрация: 17.3.2007
Где: Сириус, созвездие Большого Пса

Репутация: нет
Всего: нет



Всё получилосьsmile
--------------------
Недавно пытался объяснить сыну, кто такой модератор. Сошлись на Мойдодыре.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1016 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.