| 
| 
 | Вопрос # 3 174/ вопрос открыт / | 
 |  Здравствуйте, эксперты!Мне нужно научиться выходить из графического режима в Free Pascal по нажатию клавиши. В Borland Pascal (BP 7.0) я поступал для выхода из графического режима следующим образом:
 Readln; RestoreCrtMode; ClrScr; closegraph;
 Нажимал, когда мне было нужно “Enter” и выходил из графики.
 В Free Pascal ничего подобного не происходит; программа зависает в графическом режиме и висит пока я её полностью не закрою через Windows.
 Встречался ли кто-нибудь с этой проблемой?
 
|  |   Вопрос задал: VBoris (статус: Посетитель)Вопрос отправлен: 10 сентября 2009, 22:59
 Состояние вопроса: открыт, ответов: 0.
 |  
 Мини-форум вопросаВсего сообщений: 6; последнее сообщение — 14 сентября 2009, 20:00; участников в обсуждении: 3. 
|   | Егор (статус: 10-ый класс), 13 сентября 2009, 12:12 [#1]:не понял последовательность - Readln; RestoreCrtMode; ClrScr; closegraph; - т.е. сначала переходим в текстовый режим (RestoreCrtMode), потом чистим экран (ClrScr), а потом закрываем ГРАФИЧЕСКИЙ режим? а экран, между прочим, вообще-то, уже не в графическом, а в текстовом режиме. или я ошибаюсь?
 Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.— Donald E. Knuth.
 |  
|   | VBoris (статус: Посетитель), 13 сентября 2009, 23:21 [#2]:Всё так и есть. Но всё дело в том, что мне надо удержаться в графическом режиме и пробыть там неопределённо долгое время. А если я, например, поставлю closegraph; перед Readln; то графический режим закроется, и я окажусь у разбитого корыта. Поэтому, я вынужден при любом раскладе ставить Readln; перед closegraph; Я вообще пробовал вариант: Readln; СloseGraph; (т.е. RestoreCrtMode: и ClrScr убрал), но результат тот же. А именно: программа виснет в графическом режиме и на Readln; не реагирует. Как из графического режима перейти в текстовый режим загадка.
 |  
|   | Вадим К (статус: Академик), 14 сентября 2009, 01:08 [#3]:а надо не readln ждать, а есть Readkey или что то в этом стиле. Просто когда в графический режим переходите, readln не может читать с консоли. Галочка "подтверждения прочтения" - вселенское зло. |  
|   | Егор (статус: 10-ый класс), 14 сентября 2009, 01:23 [#4]:to Вадим К: впервые слышу, чтобы readln не мог читать в графическом режиме.
 хотя... freepascal - фиг его знает
  
 to VBoris:
 а встроенного хелпа нет?
 Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.— Donald E. Knuth.
 |  
|   | Вадим К (статус: Академик), 14 сентября 2009, 11:08 [#5]:to  Егор Многие забывают, что турбопаскаль работает в 16 битном режиме под Досом. А Фрипаскаль - под Windows/Linux/Mac как минимум в 32битном, а то и 64битном режиме через API вызовы оси...
 Поэтому если фокуса на элементе ввода нет, то ничего не получиться.
 Галочка "подтверждения прочтения" - вселенское зло. |  
|   | VBoris (статус: Посетитель), 14 сентября 2009, 20:00 [#6]:to Вадим К: “ReadKey” подошло. Спасибо. Сделал так: uses Graph, Crt, WinCrt;
 var AnyKey: char;
 Begin
 
 AnyKey:=ReadKey; CloseGraph;
 RestoreCrtMode; Readln;
 
 End.
 Но ещё одна незадача. Из графического (оконного) режима программа выходит и переходит в текстовый режим, но... сворачивается.Чтобы её развернуть на весь экран приходится пользоваться клавишами Alt+Tab, что неудобно. Можно ли сделать так, чтобы программа сразу переходила из графического режима в полноэкранный текстовый режим?
 
 to Егор: Встроенного в FreePascal хелпа нет. Но он (хелп) скачивается совместно с версией FreePascal в виде отдельных больших файлов, в которых сложно разбираться. Файлы имеют содержание, они упорядочены, но неудобны для пользования. Возможно(?) этот поставляемый с версией хелп можно сделать встроенным, но как это можно сделать (если можно?) я не знаю.
 |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |