Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Lazarus, Free Pascal, CodeTyphon
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.06.2019, 10:49   #1
camac
Пользователь
 
Регистрация: 28.07.2011
Сообщений: 11
По умолчанию Считать комбинацию клавиш.

Бодрого дня, господа.
Подскажите, пожалуйста, как в программе можно считать комбинацию клавиш? Т. е., например, Ctrl+N, Alt+Q и прочая.
При этом в то же самое время может быть и только одна клавиша, например, F1 или F2 и т. д.

PS. FreePascal.
camac вне форума Ответить с цитированием
Старый 19.06.2019, 10:59   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

сходите по ссылкам:
https://forum.lazarus.freepascal.org...?topic=33028.0
https://www.freepascal.org/docs-html...tkeyevent.html
https://forum.lazarus.freepascal.org...?topic=36590.0


например,
Код:
program example1;

{ This program demonstrates the GetKeyEvent function }

uses keyboard;

Var
  K : TKeyEvent;

begin
  InitKeyBoard;
  Writeln('Press keys, press "q" to end.');
  Repeat
    K:=GetKeyEvent;
    K:=TranslateKeyEvent(K);
    Write('Got key event with ');
    Case GetKeyEventFlags(K) of
      kbASCII    : Writeln('ASCII key');
      kbUniCode  : Writeln('Unicode key');
      kbFnKey    : Writeln('Function key');
      kbPhys     : Writeln('Physical key');
      kbReleased : Writeln('Released key event');
    end;
    Writeln('Got key : ',KeyEventToString(K));
  Until (GetKeyEventChar(K)='q');
  DoneKeyBoard;
end.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 19.06.2019, 11:07   #3
camac
Пользователь
 
Регистрация: 28.07.2011
Сообщений: 11
По умолчанию

Я прошу прощения - не совсем точно или совсем не точно я выразился.
Необходимо на разные клавиши/сочетания клавиш "навесить" разные действия.
camac вне форума Ответить с цитированием
Старый 19.06.2019, 11:40   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от camac Посмотреть сообщение
Необходимо на разные клавиши/сочетания клавиш "навесить" разные действия.
приложение с формами?
Тогда лучше использовать TAction (см. например, https://forum.lazarus.freepascal.org...?topic=19912.0)

либо банально, по старинке, на форму обработчик onKeyPress
и в нём проверять нажатую клавишу и состояние флагов.
дальше if или case и запускайте нужную процедуру в зависимости от нажатого кода

если речь идёт о приложении без форм, то тогда используйте GetKeyEvent
и далее if или case и запускайте нужную процедуру в зависимости от нажатого кода

p.s. вы по ссылкам вообще ходили? Примеры кода на форуме смотрели?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 19.06.2019, 12:00   #5
camac
Пользователь
 
Регистрация: 28.07.2011
Сообщений: 11
По умолчанию

Программулина консольная. Вообще ваяю в Линуксе. Но и Виндовс не исключен.
Т. к. с английским, как и с китайским - будем потихоньку вникать.

PS. Для прояснения ситуации. Я престарелый гуманитарий. Паскаль взялся изучать по книжкам и форумам. Будет чем мозги на пенсии "разминать" - пописывать что-то для себя в стол.
Поэтому, если сможете изредка помочь/разжевать, как для тупого, буду благодарен.
camac вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как в c++ считать с файла строку и загнать ее в переменную? что-б можно было считать 3-ю 4-ю и тд строки отдельно НАЧИНАЮЩИЙ_ПРО Помощь студентам 1 15.03.2017 16:28
Замена символов на другие или комбинацию клавиш на VBA ArchiCurtis Помощь студентам 7 14.02.2015 03:45
Сохранить строку при выделении и нажатии комбинацию клавиш 4oldo Microsoft Office Excel 1 08.07.2014 20:37
Составить комбинацию цифр из массива Artsiom Помощь студентам 6 05.12.2013 23:19
Хук на комбинацию W0LF Win Api 9 26.07.2009 10:33