Другие языки программирования и технологии

QBasic - создание окошек при нажатии кнопки

Кто может подсказать код для того, чтобы при нажатии например кнопки "Выход" открывалось окно, как на картинке.
Простенький набросок на скорую руку, может где-то ошибся с размерами, нет проверок, qbasic под MSDOS позволяет писать прямо в видеопамять (POKE) - не стал - мало-ли что с совместимостью:

DECLARE SUB DRAWLINE (size%, char$)
DECLARE SUB DRAWWINDOW (x%, y%, w%, h%)
DECLARE SUB DRAWTEXT (x%, y%, text$)
SCREEN 0
CLS

x% = 25: y% = 8: w% = 30: h% = 8

COLOR 7, 6: DRAWWINDOW x%, y%, w%, h%

DRAWTEXT x% + 12, y% + 2, "Закрыть?"

SUB DRAWLINE (size%, char$)
FOR i% = 1 TO size%
PRINT char$;
NEXT
END SUB

SUB DRAWTEXT (x%, y%, text$)
LOCATE y%, x%
PRINT text$;
END SUB

SUB DRAWWINDOW (x%, y%, w%, h%)
CONST cLT = 201
CONST cRT = 187
CONST cFL = 32
CONST cMd = 186
CONST cLB = 200
CONST cRB = 188

LOCATE y%, x%
PRINT CHR$(cLT); : DRAWLINE w% - 2, CHR$(205): PRINT CHR$(cRT);
FOR i% = 1 TO h% - 1
LOCATE y% + i%, x%
PRINT CHR$(cMd); : DRAWLINE w% - 2, CHR$(cFL): PRINT CHR$(cMd);
NEXT
LOCATE y% + h%, x%
PRINT CHR$(cLB); : DRAWLINE w% - 2, CHR$(205): PRINT CHR$(cRB)
END SUB

ЗЫЖ Кнопки можно отрисовать DRAWTEXT
Переключаться между процедурами через F2
Алексей Плиска
Алексей Плиска
84 764
Лучший ответ
https://ru.wikipedia.org/wiki/Псевдографика
А еще раньше можно было напрямую в видеопамять в текстовом режиме писать....
DS
Denis Suhanov
96 587
Роман Рагозин А как при нажатии кнопки выводить эту "графику", там написано?
Эти окошки называются tui-интерфейсом, создаются они специальными библиотеками и в qbasic ничего стандартного я не помню.

Самостоятельная реализация такой полноценной библиотеки для школьника будет очень нетривиальна (десятки/сотни килобайт кода), пример реализации был где-то во втором томе Фаронова по Турбо Паскалю, вроде для графического режима.

Для борландовских компиляторов использовалась встроенная Turbo Vision, более актуальная для плюсов - ncurses.