Модуль графики для WDE

Просмотров: 33029

Введение

В WDE начиная с версии 0.7 появилась возможность создавать простые графические программы. Для этого создан модуль Graph, являющийся облегченной версией модуля GraphABC. В WDE версии 0.8 появилась процедура Sleep и кардинально ускорена графика.

Простейшая программа имеет вид:

uses Graph;
begin
Line(10,10,100,100);
end.

В результате ее запуска в WDE мы увидим следующее графическое окно:

Перечислим основные возможности модуля Graph.

Графические примитивы

procedure Line(x1,y1,x2,y2: real);
procedure MoveTo(x,y: real);
procedure LineTo(x,y: real);
procedure PutPixel(x,y: integer; c: Color);
procedure DrawRectangle(x1,y1,x2,y2: real);
procedure FillRectangle(x1,y1,x2,y2: real);
procedure Rectangle(x1,y1,x2,y2: real);
procedure DrawCircle(x,y,r: real);
procedure FillCircle(x,y,r: real);
procedure Circle(x,y,r: real);
procedure TextOut(x,y: integer; s: string);
procedure Sleep(ms: integer);

Перо, кисть, шрифт и их свойства

Перо Pen имеет следующие свойства:

Pen.Color − цвет пера;
Pen.Width − ширина пера.

Кисть Brush имеет следующие свойства:

Brush.Color − цвет.

Шрифт Font имеет следующие свойства:

Font.Color − цвет шрифта;
Font.Size − размер шрифта в пунктах;
Font.Style − стиль шрифта (задается константами fsNormal, fsBold, fsItalic, fsBoldItalic);
Font.Name − имя шрифта (например, serif, sans-serif, Arial,Courier New, Times New Roman)

Цвета

Цвет определяется типом Color − записью с полями R, G, B, Alpha. R, G, B − целые в диапазоне 0..255, Alpha − вещественное в диапазоне 0.0 - 1.0 (по умолчанию 1.0 − полностью непрозрачный цвет).

Ряд функций типа Color возвращает конкретные цвета, в их числе: Color.Red, Color.Green, Color.Blue, Color.Black, Color.White, Color.Gray.

Кроме того, для задания цвета используются функции

function RGB(r,g,b: byte): Color;
function RGBA(r,g,b: byte; a: real): Color;
function clRandom: Color;

Управление окном

Окно Window имеет следующие свойства:

Window.Left − отступ от левого края экрана;
Window.Top − отступ от верхнего края экрана;
Window.Width − ширина окна;
Window.Height − высота окна;
Window.Title − заголовок окна.

Кроме того, окно Window имеет следующие методы:

Window.SetSize(w,h) − установить размер внутренней (клиентской) части окна;
Window.SetPos(l,t) − установить позицию левого верхнего края окна;
Window.Close − закрыть окно;
Window.Maximize − максимизировать окно;
Window.Minimize − минимизировать окно.

Обратим внимание, что нет возможности вывода (оператор writeln используется для генерации графических команд).

Примеры программ

Приведем несколько примеров программ.

Новости

29.08.16. Вышла версия 3.2. Реализован оператор yield.

12.02.16. Вышла версия 3.1. Добавлены кортежи в стиле (a,b) и кортежное присваивание (a,b) := (b,a)

31.12.15. Версия 3.0.0.1128. Реализованы обобщенные методы расширения для операций

22.12.15. Версия 3.0.0.1116. Реализован новый синтаксис extension-методов

Случайная программа

// Минимум из 2 чисел
// Уровень сложности: -1
begin
  var x,y,min: integer;

  write('Введите x и y: ');
  readln(x,y);
   
  if x<y then
    min := x
  else min := y;
   
  writeln('Минимум = ',min);
end.