Здесь показаны различия между двумя версиями данной страницы.
| Следующая версия | Предыдущая версия | ||
|
subjects:programming:pascal:pascalabc:graphabc [2018/06/05 03:01] ¶ создано |
subjects:programming:pascal:pascalabc:graphabc [2023/03/22 20:08] (текущий) ¶ [Пример рисования] |
||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| ====== PascalABC:GraphABC ====== | ====== PascalABC:GraphABC ====== | ||
| - | Модуль **GraphABC** (''входит в состав **PascalABC**'') отличается от стандартного модуля **Graph** и предназначен только для работы в ОС семейства Windows((В Linux-версии PascalABC.NET не будет работать ряд модулей: в частности, все графические модули. ''Информация на 2018 г.'')). | + | Модуль **GraphABC** (''входит в состав **PascalABC**'') отличается от стандартного модуля **Graph** и предназначен только для работы в ОС семейства Windows((В Linux-версии ''PascalABC.NET'' не будет работать ряд модулей: в частности, все графические модули. ''Информация на 2018 г.'')). |
| Для его подключения используется следующий код: | Для его подключения используется следующий код: | ||
| <code pascal>uses GraphABC;</code> | <code pascal>uses GraphABC;</code> | ||
| + | ===== В справке ===== | ||
| В справке ''PascalABC'', в разделе ''Стандартные модули'' : ''Модуль GraphABC'': | В справке ''PascalABC'', в разделе ''Стандартные модули'' : ''Модуль GraphABC'': | ||
| + | * ''Подпрограммы для работы с графическим окном'' - управление окном \\ (есть и в объектно-ориентированном стиле) | ||
| * ''Графические примитивы'' - какие ещё фигуры можно рисовать | * ''Графические примитивы'' - какие ещё фигуры можно рисовать | ||
| * ''Цветовые константы'' - какие цвета можно использовать | * ''Цветовые константы'' - какие цвета можно использовать | ||
| + | * ''События'' - более подробно о событиях | ||
| + | * ''Виртуальные коды клавиш'' - для событий ''OnKeyDown'' и ''OnKeyUp'' | ||
| - | ===== Некоторые цвета ===== | + | ===== Рисование ===== |
| + | ==== Некоторые цвета ==== | ||
| |Константа^Цвет^ | |Константа^Цвет^ | ||
| ^clBlack|Чёрный| | ^clBlack|Чёрный| | ||
| Строка 22: | Строка 27: | ||
| ^clDkGray|Тёмно-серый| | ^clDkGray|Тёмно-серый| | ||
| - | ===== Пример: ===== | + | ==== Пример рисования ==== |
| <code pascal>Program Figurka; | <code pascal>Program Figurka; | ||
| uses GraphABC; | uses GraphABC; | ||
| begin | begin | ||
| + | SetWindowCaption('Title'); // задаем заголовок графического окна | ||
| SetWindowSize(800, 600); // задаем размер графического окна | SetWindowSize(800, 600); // задаем размер графического окна | ||
| + | // CenterOnScreen; // центрируем графическое окно по центру экрана | ||
| + | |||
| ClearWindow(clWhite); // очищаем окно указанным цветом | ClearWindow(clWhite); // очищаем окно указанным цветом | ||
| - | + | SetBrushColor(clGreen); // устанавливаем цвет кисти (закрашивание) | |
| - | SetBrushColor(clPurpure); // устанавливаем цвет кисти | + | SetPenColor(clRandom); // устанавливаем цвет пера (границы) |
| SetPixel(10,10,clBlack); // закрашивает один пиксель(x,y,color) | SetPixel(10,10,clBlack); // закрашивает один пиксель(x,y,color) | ||
| Строка 35: | Строка 43: | ||
| Line(200,100,400,200); // рисуем линию (x1,y1,x2,y2) | Line(200,100,400,200); // рисуем линию (x1,y1,x2,y2) | ||
| Rectangle(200,300,250,350); // рисуем прямоугольник (x1,y1,x2,y2) | Rectangle(200,300,250,350); // рисуем прямоугольник (x1,y1,x2,y2) | ||
| + | |||
| + | Sleep(1000); // пауза в мс. | ||
| SetFontColor(clBlack); // устанавливаем цвет шрифта | SetFontColor(clBlack); // устанавливаем цвет шрифта | ||
| SetFontSize(20); // устанавливаем размер шрифта в pt | SetFontSize(20); // устанавливаем размер шрифта в pt | ||
| - | TextOut(300,10,"a+b=c"); // выводим текст (x,y,string) | + | TextOut(300,10,'a+b=c'); // выводим текст (x,y,string) |
| end.</code> | end.</code> | ||
| + | ===== События ===== | ||
| + | Графическая программа продолжает выполняться даже после того как выполнены все операторы основной программы. Графическое окно реагирует на события мыши, клавиатуры, событие изменения размеров окна и событие закрытия окна. | ||
| + | ==== События ==== | ||
| + | |Событие^Обработчик| | ||
| + | ^OnMouseDown|//procedure// (x, y, mousebutton: **integer**);| | ||
| + | ^OnMouseUp|//procedure// (x, y, mousebutton: **integer**);| | ||
| + | ^OnMouseMove|//procedure// (x, y, mousebutton(( | ||
| + | ^0|кнопка мыши не нажата| | ||
| + | ^1|левая кнопка мыши| | ||
| + | ^2|правая кнопка мыши| | ||
| + | )): **integer**);| | ||
| + | ^OnKeyDown|//procedure// (key: **integer**);| | ||
| + | ^OnKeyUp|//procedure// (key: **integer**);| | ||
| + | ^OnKeyPress|//procedure// (ch: **char**);| | ||
| + | ^OnResize|//procedure//;| | ||
| + | ^OnClose|//procedure//;| | ||
| + | |||
| + | ==== Код некоторых клавиш ==== | ||
| + | * VK_Left | ||
| + | * VK_Right | ||
| + | * VK_Up | ||
| + | * VK_Down | ||
| + | * VK_Enter | ||
| + | * VK_Space | ||
| + | * VK_A | ||
| + | * VK_B | ||
| + | * … | ||
| + | Используется для событий ''OnKeyDown'' и ''OnKeyUp''. | ||
| + | |||
| + | ==== Пример ==== | ||
| + | <code pascal>Program MouseCircle; | ||
| + | uses GraphABC; | ||
| + | |||
| + | procedure DoMouseDown(x,y,mb: integer); // Процедура-обработчик | ||
| + | begin | ||
| + | if mb=1 then begin | ||
| + | ClearWindow; | ||
| + | Circle(x,y,50); // рисуем окружность (x,y,r) | ||
| + | end; | ||
| + | end; | ||
| + | |||
| + | begin | ||
| + | OnMouseDown := DoMouseDown; // Привязка обработчика к событию | ||
| + | end.</code> | ||
Записаться на занятия к репетитору