0 / 0 / 0
Регистрация: 15.07.2009
Сообщений: 13

Горячие клавиши

15.07.2009, 19:44. Показов 13356. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здраствуйте уважаемые программисты!

У меня просьба, я вылаживаю исходники небольшой программки (делал не я) и хочу чтобы вы сделали в этой программе горячую кнопку. Чтобы при нажатии кнопки "H" появлялась другая форма (Form 1). И чтобы эта появившаяся форма была поверх всех окон, я может быть наглею но пожалуйста помогите и если можно распишите комментарии в исходнике чтобы я мог понять что и как.

Заранее спасибо не имеющее границ!
Вложения
Тип файла: rar ishodnik.rar (206.9 Кб, 85 просмотров)
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.07.2009, 19:44
Ответы с готовыми решениями:

Горячие клавиши
Как сделать что бы при нажатии клавиш Ctrl+Z выполнялось a:=a+1;

Горячие клавиши
Вот такая проблемка. Нужно мне настроить горячие клавиши на "Exit" - esc, "About" - f1, "Open" - Ctrl+О. Не могу понять как это...

Горячие клавиши
Как с помощью HotKey сделать назначение клавиш, к примеру включение/отключение звука в системе на букву "б", а при желании через...

26
Эксперт С++
 Аватар для Phantom
3189 / 869 / 39
Регистрация: 29.12.2008
Сообщений: 951
15.07.2009, 20:49
Лучший ответ Сообщение было отмечено как решение

Решение

Нетрудно, исходник править не буду. Смотри: создаешь обработчик события OnKeyDown Формы2 и в нем пишешь:
Delphi
1
2
3
4
5
procedure TForm2.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if Key=ord('H') then Form1.Visible:=true;
end;
Типа, если нажата клавиша 'H', то показать Форму1.

Когда будешь компилить, Delphi спросит тебя включить ли Форму1 в проект. Нажмешь "Yes" и ещё раз запустишь на компиляцию.
4
Админю немножко :)
126 / 115 / 25
Регистрация: 05.01.2009
Сообщений: 889
15.07.2009, 20:54
я может быть наглею но пожалуйста помогите и если можно распишите комментарии в исходнике чтобы я мог понять что и как.
слишком мягко сказано))))

В событии нажатия на кнопку (FormKeyDown) пишем следующий код
Delphi
1
2
      if((Key=ord('H')))then
      begin
букву можно поставить любую. После begin пишете все, что вам нужно. например,
Delphi
1
Form1.show;
1
Админю немножко :)
126 / 115 / 25
Регистрация: 05.01.2009
Сообщений: 889
15.07.2009, 21:06
P.S. Лови
MP3_Player.zip
2
0 / 0 / 0
Регистрация: 15.07.2009
Сообщений: 13
15.07.2009, 21:29  [ТС]
СПАСИБО ВАМ ВСЕМ ОГРОМНОЕ! Я БЛАГОДАРЕН ОЧЕНЬ СИЛЬНО СИЛЬНО!

Добавлено через 9 минут 32 секунды
Drongo

пожалуйста можно тебя еще попросить? Можно так сделать чтобы это было не тока когда активна имено Form 2, а даже например если я где-то в какой-то папке нахожусь(но программа эта включена) то при нажатии на кнопку серавно появлалась Form1
0
Эксперт С++
 Аватар для Phantom
3189 / 869 / 39
Регистрация: 29.12.2008
Сообщений: 951
15.07.2009, 21:42
Тут тоже нетрудно: кидаешь таймер на Форму2, на него ставишь время поменьше (интервал=10, например) а в обработчике пишешь:
Delphi
1
if GetAsyncKeyState(72)=-32767 then Form1.Show;
Теперь где бы ты не нажал клавишу 'H', выскочит Форма1.
1
0 / 0 / 0
Регистрация: 15.07.2009
Сообщений: 13
15.07.2009, 22:08  [ТС]
Получилось! А теперь нужно сделать чтобы он выскакивал поверх всех окон и пока его не закроешь он всегда был поверх всех окон.

P.S. он это проигрыватель
0
Эксперт С++
 Аватар для Phantom
3189 / 869 / 39
Регистрация: 29.12.2008
Сообщений: 951
15.07.2009, 22:25
В настройках формы установи свойство FormStyle равным fsStayOnTop. Теперь эта форма будет всё время поверх. Можно это cделать и внутри программы, прописав что-то вроде:
Delphi
1
Form1.FormStyle := fsStayOnTop;
2
0 / 0 / 0
Регистрация: 15.07.2009
Сообщений: 13
16.07.2009, 09:44  [ТС]
Все теперь помог! вроде бы вопросов больше не имею!

Добавлено через 28 минут 30 секунд
Появился еще один вопрос...как теперь сделать что при нажатии опять кнопки "H" форма опять праталась

Добавлено через 10 часов 40 минут 54 секунды
Появился еще один вопрос...как теперь сделать что при нажатии опять кнопки "H" форма опять праталась

И еще вопросик....

Уже в форме самого Плеера(Form1) как сделать что при нажатии кнопки "/" началось воспроизведение музыки?

Добавлено через 2 минуты 34 секунды
Появился еще один вопрос...как теперь сделать что при нажатии опять кнопки "H" форма опять праталась

И еще вопросик....

Уже в форме самого Плеера(Form1) как сделать что при нажатии кнопки "/" началось воспроизведение музыки?
0
2923 / 844 / 324
Регистрация: 30.04.2009
Сообщений: 2,633
16.07.2009, 09:54
Delphi
1
2
3
4
5
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if Key=ord('H') then begin Form2.Visible:=true; form1.close; end;
end;
вроде так

Добавлено через 1 минуту 55 секунд
ну по логике то поди уже можно догадаться как сделать
0
0 / 0 / 0
Регистрация: 15.07.2009
Сообщений: 13
16.07.2009, 09:57  [ТС]
Да как бы пробывал, да что-то вот такой вот плеер что неполучается у меня(чтобы запускалась музыка при кнопке "/")

А вот для скрытия опять формы 1 сейчас попробую
0
2923 / 844 / 324
Регистрация: 30.04.2009
Сообщений: 2,633
16.07.2009, 10:00
а плеер сделан как отдельная форма или это и есть форма 1
0
0 / 0 / 0
Регистрация: 15.07.2009
Сообщений: 13
16.07.2009, 10:29  [ТС]
Это и есть форма 1, можешь скачать исходничек он мало весит
0
2923 / 844 / 324
Регистрация: 30.04.2009
Сообщений: 2,633
16.07.2009, 10:32
для запуска как я понимаю надо делать тоже в форме один , то есть подобно закрытию только запуск воспроизведения для символа / , а ты поди делал это все в форме 2???
0
0 / 0 / 0
Регистрация: 15.07.2009
Сообщений: 13
16.07.2009, 10:33  [ТС]
Да конечно я не такой олень чтобы делать ето в форме 2 догадался что в форме 1) там оно под SpeedButton настроено и када я делаю для KeyFormDown ничего не происходит
0
Админю немножко :)
126 / 115 / 25
Регистрация: 05.01.2009
Сообщений: 889
16.07.2009, 14:29
для слеша (/) прописывай так
Delphi
1
2
if key= vk_Divide
  then ....
1
Эксперт С++
 Аватар для Phantom
3189 / 869 / 39
Регистрация: 29.12.2008
Сообщений: 951
16.07.2009, 16:01
А ещё есть нюанс: нужно обрабатывать KeyDown не формы, а ЛистБокса, потому что фокус именно на нем, тогда всё будет работать. Вот код, это при нажатии '/', который на малой цифровой клавиатуре, его код 111, я помню. Если тебе другой слэш нужен, то поищи сам его код или воспользуйся предыдущим советом Drongo.
Delphi
1
2
3
4
5
procedure TForm1.ListBox1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
 if Key=111 then SpeedButton1.OnClick(self);
end;
1
0 / 0 / 0
Регистрация: 15.07.2009
Сообщений: 13
16.07.2009, 16:30  [ТС]
Очень важный нюанс! Спасибо огромное! Буду пробовать!

Добавлено через 27 минут 8 секунд
Теперь также нужно сделать чтобы эта кнопка "/" (111) всегда работала даже когда окно не активно
0
Эксперт С++
 Аватар для Phantom
3189 / 869 / 39
Регистрация: 29.12.2008
Сообщений: 951
16.07.2009, 16:36
Опять таймер и функция GetAsyncKeyState. Только параметр не 72, а 111. Вот инфа по этой функции, прочитай внимательно что она делает:
http://www.cyberguru.ru/progra... page5.html
1
0 / 0 / 0
Регистрация: 15.07.2009
Сообщений: 13
16.07.2009, 18:57  [ТС]
Цитата Сообщение от mamedovvms Посмотреть сообщение
Delphi
1
2
3
4
5
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if Key=ord('H') then begin Form2.Visible:=true; form1.close; end;
end;
вроде так

Добавлено через 1 минуту 55 секунд
ну по логике то поди уже можно догадаться как сделать

Неполучилось, серавно не сворачивается при еще раз нажатии H

Добавлено через 13 минут 58 секунд
А где можно найти список кодов кнопок?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.07.2009, 18:57
Помогаю со студенческими работами здесь

Горячие клавиши
Всем привет. Есть вопрос - можно ли в Delphi использовать комбинации клавиш Alt+1, Alt+2, Alt+3, Alt+4, Alt+5, Alt+6? Есть 6...

Горячие клавиши
Подскажите пожалуйста как мне назначить какоето действие на горячие клавиши : F1,F2..ну и тд..

Горячие клавиши
Как сделать так, чтобы, например, по нажатию нескольких клавиш открывалось диалоговое окно "Открыть"? Для одной клавиши...

Горячие клавиши
Как прописать вызов горячих клавиш? Например, вызов печати на CTRL+P или поиска на CTRL+F? Спасибо.:)

Горячие клавиши
Здравствуйте скажите как можно реализовать горячие клавиши без таймера нужно что бы допустим нажал какую то клавишу сработала процедура...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru