
Другие языки программирования и технологии
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

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

https://ru.wikipedia.org/wiki/Псевдографика
А еще раньше можно было напрямую в видеопамять в текстовом режиме писать....
А еще раньше можно было напрямую в видеопамять в текстовом режиме писать....
Роман Рагозин
А как при нажатии кнопки выводить эту "графику", там написано?
Эти окошки называются tui-интерфейсом, создаются они специальными библиотеками и в qbasic ничего стандартного я не помню.
Самостоятельная реализация такой полноценной библиотеки для школьника будет очень нетривиальна (десятки/сотни килобайт кода), пример реализации был где-то во втором томе Фаронова по Турбо Паскалю, вроде для графического режима.
Для борландовских компиляторов использовалась встроенная Turbo Vision, более актуальная для плюсов - ncurses.
Самостоятельная реализация такой полноценной библиотеки для школьника будет очень нетривиальна (десятки/сотни килобайт кода), пример реализации был где-то во втором томе Фаронова по Турбо Паскалю, вроде для графического режима.
Для борландовских компиляторов использовалась встроенная Turbo Vision, более актуальная для плюсов - ncurses.
Похожие вопросы
- Фреймы. Как сделать так, чтобы при нажатии кнопки, страничка открывалась в соседнем фрейме
- Visual Basic6. как нажатием кнопки command 1 изменить реестр?
- как отключить имитацию нажатия правой кнопки мыши на палншете wacom intuos pen and touch?
- как в delphi сделать чтобы при нажатии на определенную кнопку выводился другой символ??
- qBasic
- помогите написать простые программы на Qbasic
- QBASIC сформировать мосив состоящая С М-строк,и М-столбцов
- Косинус в qbasic
- Интересные примеры для QBasic
- Что пришло на смену Qbasic?