мета-данные страницы
Загрузка не удалась. Возможно, проблемы с правами доступа?
Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
pascal:graph [29/01/2016 12:58] – ybezrukov | pascal:graph [05/10/2018 12:39] (текущий) – ybezrukov | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
===== Графика в Паскале ===== | ===== Графика в Паскале ===== | ||
- | FIXME | ||
- | |||
- | Пример работы с графикой в системе Borland (что тоже самое - Turbo) Pascal: | ||
- | |||
- | <code pascal> | ||
- | USES GRAPH; | ||
- | |||
- | VAR h,k,l: INTEGER; | ||
- | |||
- | BEGIN | ||
- | | ||
- | |||
- | | ||
- | | ||
- | |||
- | | ||
- | If h<>0 then // Реакция на ошибку запуска графики | ||
- | begin | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | end | ||
- | else ... ; // Здесь - код для работы с графикой | ||
- | |||
- | | ||
- | |||
- | END. | ||
- | </ | ||
- | |||
Пример работы с графикой в нашей системе. | Пример работы с графикой в нашей системе. | ||
Строка 60: | Строка 30: | ||
<code pascal> | <code pascal> | ||
- | Mx := GetMaxX div 2; | + | |
My := GetMaxY div 2; | My := GetMaxY div 2; | ||
for y := -my to my do | for y := -my to my do | ||
Строка 274: | Строка 244: | ||
+ | ==== Работа с клавиатурой ==== | ||
+ | |||
+ | В графическом режиме обработка событий клавиатура происходит очень похоже на текстовый режим, так как реализованы аналоги функций readkey и keypressed из модуля crt. В модуле oglgraph они называются graphreadkey и graphkeypressed. Функция graphkeypressed служит для определения события нажатия на клавиатуру, | ||
+ | |||
+ | <code pascal> repeat until graphkeypressed;</ | ||
+ | |||
+ | Когда выполнение программы доходит до приведенной строки, | ||
+ | |||
+ | Функция graphreadkey так же реагирует на нажатия, | ||
+ | |||
+ | <code pascal> code := graphreadkey;</ | ||
+ | |||
+ | |||
+ | Особенностью это функции является то, что она блокирует исполнение программы до того момента пока не будет нажата клавиша. Если же требуется реализовать работу с клавиатурой, | ||
+ | |||
+ | <code pascal> | ||
+ | if graphkeypressed then | ||
+ | code := graphreadkey; | ||
+ | </ | ||
+ | |||
+ | Напишем программу, | ||
+ | |||
+ | <code pascal> | ||
+ | uses oglgraph; | ||
+ | var | ||
+ | gd, gm, code: smallint; | ||
+ | | ||
+ | begin | ||
+ | gd := Detect; | ||
+ | gm := DetectMode; | ||
+ | initgraph(gd, | ||
+ | | ||
+ | while true do | ||
+ | begin | ||
+ | if graphkeypressed then | ||
+ | begin | ||
+ | code := graphreadkey; | ||
+ | writeln(code); | ||
+ | | ||
+ | end; | ||
+ | closegraph; | ||
+ | end. | ||
+ | |||
+ | </ | ||