Текст программы построен на основе предыдущей программы. Новые используемые команды -
GetDC, wglMakeCurrent, glEnable(с различными 3 параметрами) - в процедуре TForm1.FormCreate,
glNormal3f - в TForm1.Paint.
1. Cоздание формы - OnCreate, в обработчике этого события находятся строки
отвечающие за настройку интерфейса: настройка скроллеров (значение от -180 до 180, один прижат вниз, другой к левому краю формы)
и сама форма размером 400 на 400 пикселей (Form1.Width := 400 и Form1.Height := 400)
, далее
в переменную DC получаем ссылку на устройство на котором будем рисовать, уже знакомая процедура SetDCPixelFormat(DC)
возвращает формат пикселя устройства (в данном случае это просто Form) - проще это объяснить так: просим, что хотим - получаем
что есть. И тем что есть пользуемся - wglCreateContext(DC) - соглашаемся этим что-то пользоваться и пользуемся -
wglMakeCurrent(DC,hrc). Далее включаем свет - и опять простое объяснение: даем понять программе, что будем
использовать свет - glEnable ( GL_LIGHTING ), только один источник - glEnable ( GL_LIGHT0 ) и включаем свет - glEnable
( GL_DEPTH_TEST ).
2. Событие-перерисовка OnPaint не сильно отличается от предыдущих программ - поэтому
рассмотрим подробнее некоторые моменты - glClear теперь с двумя параметрами (посмотрите справку по команде), команда glNormal3f - указывает направление-вектор
"лучей света" - попробуите значения поменять на прямо противоположные (т.е '1.0' на '-1.0' и наоборот) - и что увидим? - а то что
наша тестовая модель стала освещаться изнутри.
3. При корректном завершении работы программы OnDestroy происходит возврат на круги своя - все,
что получили возвращается в исходное состояние - все ссылки и контекст удаляются. Прочитав справочную информацию и так
все поимете (щелкая мышью по гиперссылкам-командам OpenGL с интересующими Вас командами).
Для переноса кода программы в Delphi необходимо выполнить следующие действия:
1. Сохранить текст программы под любым именем в формате TXT - Программа / Сохранить код программы - в выпадающем списке диалога "Тип файла"
выбрать "Текстовый файл (*.txt)".
2. Открыть свои новый текстовый файл в любом редакторе и скопировать весь текст в буфер обмена.
3. Запустить Delphi и начать новый проект - все элементы имеют свои названия по умолчанию, поэтому Вам не следует изменять их - это
важно.
4. Перейти на вкладку проекта Events и выполнить двойной щелчок в полях OnCreate, OnDestroy и OnPaint.
Так же необходимо добавить 2 скроллера в любое место формы - панель инструментов Standart\ScrollBar и дважды щелкнуть по каждому скроллеру.
5. Перейти к тексту программы Unit1, стереть его весь и на его место вставить текст из буфера обмена, можно воспользоваться
комбинацией клавиш Ctrl+V.
6. Запустить Ваш новый проект - F9.
Если все сделали правильно - Вы получите тот же результат, что и в Book3D редакторе.