Страница 2 из 2

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

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

Ничего не получиться. У них там в универе строгая, не допускающая возражений учебная программа... :-)

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

СообщениеДобавлено: 10.12.2018 09:27:22
Лекс Айрин
Убери лишние RestoreSrtMode. Правильный

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

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

Setgraphmode(getgraphmode) лучше заменить на setgraphmode(4 ), тогда будет меньше вылетов. Цифру подбери сам.
Единственное, что не могу понять как избавиться от дополнительного окна. Судя по всему, это особенность оси.

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

СообщениеДобавлено: 10.12.2018 09:29:43
Vadim
Лекс Айрин писал(а):Единственное, что не могу понять как избавиться от дополнительного окна.

В своё время над этим ломали головы лучшие умы конца 90-ых и начала 2000-х годов. Я не себя имею в виду... :-)

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

СообщениеДобавлено: 10.12.2018 09:38:51
Лекс Айрин
Vadim, ну так это же имитация доса, так что вполне вероятно, что в нормальном досе все будет нормально.

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

СообщениеДобавлено: 10.12.2018 09:46:28
Vadim
Лекс Айрин писал(а):так что вполне вероятно, что в нормальном досе все будет нормально.

Мало того, так оно и было, я ещё помню те ветхозаветные времена... :-)
Проблема тут в другом - таки где мы будем иметь нормальный эмэсдос? Вы делаете меня смеяться... :-D

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

СообщениеДобавлено: 10.12.2018 10:49:34
Лекс Айрин
Vadim писал(а):Мало того, так оно и было, я ещё помню те ветхозаветные времена... :-)


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

Если только FreeDos... говорят таки, что жив курилка.

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

СообщениеДобавлено: 10.12.2018 11:40:31
Vadim
Лекс Айрин писал(а):Если только FreeDos...

Кстати, хорошая идея... Можно попробовать такой код в DosBox запустить...

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

СообщениеДобавлено: 10.12.2018 22:52:10
Vladosikman
SSerge когда фокус стоит на консольном окне, график обрабатывается, как только активируешь графическое ничего не работает.

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

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

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

СообщениеДобавлено: 11.12.2018 06:46:46
Vadim
Vladosikman писал(а):Кто-нибудь знает, что это?

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

Вот здесь, на примере функции ClrScr, в двух словах показывается, как она реализуется на WinAPI:
http://pcfu.ru/perenosim-programmy-s-tu ... na-delphi/

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

СообщениеДобавлено: 11.12.2018 21:46:38
Vladosikman
А можно ли как-нибудь, в середине программы, отключить действие одного модуля, и подключить другой

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

СообщениеДобавлено: 11.12.2018 22:09:47
Лекс Айрин
Vladosikman, нет. Они подключаются при компиляции.
Можно лишь выбирать из какого модуля использовать функции в каждом месте... но это очень муторно.
Через спецификатор модуля. Например -- Crt.нужная_функция_или_переменная

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

СообщениеДобавлено: 12.12.2018 17:23:41
mig-31
Очень старая технология. В 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;

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

СообщениеДобавлено: 12.12.2018 17:53:42
Лекс Айрин
mig-31, он в тексте программы использовал ReadKey.

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

СообщениеДобавлено: 12.12.2018 18:46:23
mig-31
Лекс Айрин писал(а):mig-31, он в тексте программы использовал ReadKey.

Ну тогда в Win10 еще что-то отрубили

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

СообщениеДобавлено: 12.12.2018 18:48:37
Лекс Айрин
mig-31, там и в ХР создается отдельное окно с графиком. а управление идет через текстовое окно(((