Считывания клавиш для графиского режима

Форум для изучающих FPC и их учителей.

Модератор: Модераторы

Re: Считывания клавиш для графиского режима

Сообщение Vadim » 10.12.2018 09:11:51

Снег Север писал(а):Чем маяться херней с этим говном мамонта, лучше бы ребята лазарь осваивали...

Ничего не получиться. У них там в универе строгая, не допускающая возражений учебная программа... :-)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Считывания клавиш для графиского режима

Сообщение Лекс Айрин » 10.12.2018 09:27:22

Убери лишние RestoreSrtMode. Правильный

Код: Выделить всё
until rk=#27;
    restorecrtmode;
    end;

Угу... проблему вижу... судя по всему, у тебя просто не переключилась консоль на графику.

Setgraphmode(getgraphmode) лучше заменить на setgraphmode(4 ), тогда будет меньше вылетов. Цифру подбери сам.
Единственное, что не могу понять как избавиться от дополнительного окна. Судя по всему, это особенность оси.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Считывания клавиш для графиского режима

Сообщение Vadim » 10.12.2018 09:29:43

Лекс Айрин писал(а):Единственное, что не могу понять как избавиться от дополнительного окна.

В своё время над этим ломали головы лучшие умы конца 90-ых и начала 2000-х годов. Я не себя имею в виду... :-)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Считывания клавиш для графиского режима

Сообщение Лекс Айрин » 10.12.2018 09:38:51

Vadim, ну так это же имитация доса, так что вполне вероятно, что в нормальном досе все будет нормально.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Считывания клавиш для графиского режима

Сообщение Vadim » 10.12.2018 09:46:28

Лекс Айрин писал(а):так что вполне вероятно, что в нормальном досе все будет нормально.

Мало того, так оно и было, я ещё помню те ветхозаветные времена... :-)
Проблема тут в другом - таки где мы будем иметь нормальный эмэсдос? Вы делаете меня смеяться... :-D
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Считывания клавиш для графиского режима

Сообщение Лекс Айрин » 10.12.2018 10:49:34

Vadim писал(а):Мало того, так оно и было, я ещё помню те ветхозаветные времена... :-)


Я сам помню)))
Vadim писал(а):Проблема тут в другом - таки где мы будем иметь нормальный эмэсдос? Вы делаете меня смеяться... :-D

Если только FreeDos... говорят таки, что жив курилка.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Считывания клавиш для графиского режима

Сообщение Vadim » 10.12.2018 11:40:31

Лекс Айрин писал(а):Если только FreeDos...

Кстати, хорошая идея... Можно попробовать такой код в DosBox запустить...
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Считывания клавиш для графиского режима

Сообщение Vladosikman » 10.12.2018 22:52:10

SSerge когда фокус стоит на консольном окне, график обрабатывается, как только активируешь графическое ничего не работает.

Добавлено спустя 2 минуты 43 секунды:
Хах, да, учусь.
Стоит Винда 10. Недавно читал, что как то считывание можно сделать через WinApi. Не знаете?

Добавлено спустя 6 минут:
Хах. да, учусь.
Винда стоит 10. Сегодня читал, что считывание клавиш можно сделать как то через Winapi. Кто-нибудь знает, что это?
Vladosikman
незнакомец
 
Сообщения: 7
Зарегистрирован: 07.12.2018 22:42:17

Re: Считывания клавиш для графиского режима

Сообщение Vadim » 11.12.2018 06:46:46

Vladosikman писал(а):Кто-нибудь знает, что это?

Например вот кто-то делал модуль CRT на основе WinAPI. Полюбопытствуйте:
https://sourceforge.net/projects/delphi ... win32-x86/

Вот здесь, на примере функции ClrScr, в двух словах показывается, как она реализуется на WinAPI:
http://pcfu.ru/perenosim-programmy-s-tu ... na-delphi/
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Считывания клавиш для графиского режима

Сообщение Vladosikman » 11.12.2018 21:46:38

А можно ли как-нибудь, в середине программы, отключить действие одного модуля, и подключить другой
Vladosikman
незнакомец
 
Сообщения: 7
Зарегистрирован: 07.12.2018 22:42:17

Re: Считывания клавиш для графиского режима

Сообщение Лекс Айрин » 11.12.2018 22:09:47

Vladosikman, нет. Они подключаются при компиляции.
Можно лишь выбирать из какого модуля использовать функции в каждом месте... но это очень муторно.
Через спецификатор модуля. Например -- Crt.нужная_функция_или_переменная
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Считывания клавиш для графиского режима

Сообщение mig-31 » 12.12.2018 17:23:41

Очень старая технология. В Windows консоль очень убогая, ее фактически выпилили. В Linux для текстовых приложений используют ncurses.В fpc есть модуль ncurses.
Перейдите на Lazarus, как вам все советуют и не морочте голову.

Нашел старый код TP7, который у меня компилился и запускался под Linux с прямым доступом к DAQ карте. Так в нем обработка нажатий клавиш осуществляется с помощью функции ReadKey https://www.freepascal.org/docs-html/rtl/crt/readkey.html.
Код: Выделить всё
var
CH: Char;
begin
   //init graphic mode
 
   repeat
     CH:= ReadKey;
     //do something
   until CH in ['k', 'K'];

  //close graphic mode
end;
mig-31
постоялец
 
Сообщения: 224
Зарегистрирован: 14.07.2011 13:46:48

Re: Считывания клавиш для графиского режима

Сообщение Лекс Айрин » 12.12.2018 17:53:42

mig-31, он в тексте программы использовал ReadKey.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Считывания клавиш для графиского режима

Сообщение mig-31 » 12.12.2018 18:46:23

Лекс Айрин писал(а):mig-31, он в тексте программы использовал ReadKey.

Ну тогда в Win10 еще что-то отрубили
mig-31
постоялец
 
Сообщения: 224
Зарегистрирован: 14.07.2011 13:46:48

Re: Считывания клавиш для графиского режима

Сообщение Лекс Айрин » 12.12.2018 18:48:37

mig-31, там и в ХР создается отдельное окно с графиком. а управление идет через текстовое окно(((
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Пред.

Вернуться в Обучение Free Pascal

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

Рейтинг@Mail.ru