Текст программы построен на основе предыдущей программы. Новые используемые команды - glLineWidth,
операторные скобки glBegin..glEnd с символической константой GL_LINES (щелкните по интересующей Вас
команде в тексте программы и в нижней части окна получите подробную справку по этим командам)
Примечание: так как программа отличается от предыдущей не значительно - то что повторяется будет выделено синим цветом - это сделано
для того что-бы не читать уже усвоенный материал и сразу увидеть и прочитать отличие от предыдущей программы.
1. Cоздание формы - OnCreate, в обработчике этого события находятся следующие строки - SetDCPixelFormat(Canvas.Handle) - задаем формат
пикселя обращаясь к описанной в этом же модуле пользовательской процедуре - procedure SetDCPixelFormat(hdc : HDC) - не забываем посмотреть всю
помощь щелкая мышью по гиперссылкам-командам OpenGL с интересующими Вас командами. Далее создаем контекст воспроизведения - wglCreateContext
(Canvas.Handle).
2. Далее возникает событие-перерисовка
OnPaint - где последовательно происходят следующие действия: устанавливается контекст - wglMakeCurrent
(Canvas.Handle,hrc), цвет фона - glClearColor(0.5,0.5,0.7,1.0), очищается буфер цвета glClear(GL_COLOR_BUFFER_BIT)- очистка экрана и
окрашивание его установленным цветом фона,
устанавливается текущий цвет glColor3f (для
всех последующих примитивов - пока снова
цвет не будет переопределен), толщина линии
glPointSize, операторные скобки glBegin(GL_LINES)..glEnd
задают тип примитивов - линии - и для вывода
на экран указывается две вершины - glVertex2f . Далее устанавливается размер точки - glPointSize
и текущий цвет glColor3f (переопределяется цвет
всех последующих примитивов), операторные скобки glBegin(GL_POINTS)..glEnd
задают тип примитивов - точки, glVertex2f -
координаты в 2-х мерном пространстве (см.
синтаксис команд OpenGL) и в завершении освобождается установленный ранее контекст -
wglMakeCurrent(0,0). Вы закрасили окно цветом и
нарисовали две точки и линию - изменяя параметры
этих команд Вы можете самостоятельно
получать различные цвета закраски окна,
цвета и размеры точек и линии,
изменением координат glVertex2f можно менять
местоположение примитивов.
3. При корректном завершении работы программы OnDestroy происходит удаление контекста воспроизведения - wglDeleteContext(hrc).
1 способ (продвинутый):
1. Сохранить текст программы под любым именем в формате TXT - Программа / Сохранить код программы - в выпадающем списке диалога "Тип файла"
выбрать "Текстовый файл (*.txt)".
2. Открыть свои новый текстовый файл в любом редакторе и скопировать весь текст в буфер обмена.
3. Запустить Delphi и начать новый проект - все элементы имеют свои названия по умолчанию, поэтому Вам не следует изменять их - это
важно.
4. Перейти на вкладку проекта Events и выполнить двойной щелчок в полях OnCreate, OnDestroy и OnPaint.
5. Перейти к тексту программы Unit1, стереть его весь и на его место вставить текст из буфера обмена, можно воспользоваться
комбинацией клавиш Ctrl+V.
6. Запустить Ваш новый проект - F9.
2 способ (быстрый):
1. Создать новую папку - здесь будет лежать Ваш новый проект. Например - PR1.
2. Из папки Book3D\MY_KOD скопировать в Вашу новую папку PR1 содержимое папки N1-12 (код для уроков с 1 по 12).
3. Сохранить текст программы под именем Unit1 в формате TXT в PR1 - Программа / Сохранить код программы - в выпадающем списке диалога "Тип файла"
выбрать "Текстовый файл (*.txt)".
4. Переименовать файл Unit1.txt в Unit1.pas - на вопрос "Заменить файл" - "ОК".
5. Запустить файл Project1.dpr из PR1 или запустить Delphi и открыть проект из PR1 - Project1.dpr.
6. Запустить Ваш новый проект - F9.
Если все сделали правильно - Вы получите тот же результат, что и в Book3D-редакторе.