Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
subjects:programming:pascal:pascalabc:graphabc [2018/06/12 11:48] ¶ [Пример:] |
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) | ||
Строка 40: | Строка 48: | ||
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> |