Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

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

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


Ответ
 
Опции темы
Старый 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,260
По умолчанию

сходите по ссылкам:
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,260
По умолчанию

Цитата:
Сообщение от 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 вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как в 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 19:37
Составить комбинацию цифр из массива Artsiom Помощь студентам 6 05.12.2013 22:19
Хук на комбинацию W0LF Win Api 9 26.07.2009 09:33


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Здесь нужно купить рекламу за 7 тыс руб в месяц! )
пишите сюда - alarforum@yandex.ru
ИКС 840