Главная arrow Статьи arrow Обучение arrow Модуль графики для WDE
  
PascalABC.NET
     

Главное меню
Главная
Скачать
О языке Паскаль
Что нового
Скриншоты
Web-среда разработки
Описание языка
Школьнику - задачи ЕГЭ
Статьи
Доклады и публикации
Примеры программ
Разработчики
Ссылки
Wiki
Форум
Гостевая книга
Случайная программа
// Числа Фибоначчи
const n = 25;
begin
  var a := 1;
  var b := 1;
  write(a,' ',b,' ');
  for var i := 3 to n do
  begin
    var c := a + b;
    write(c,' ');
    a := b;
    b := c;
  end;
end.
Баннеры

Рейтинг@Mail.ru

ptaskbook.com


Модуль графики для WDE
Автор: Михалкович Станислав   
29.07.2010 17:03

Введение

В 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 используется для генерации графических команд).

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

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

 

Комментарии  

 
+1 #2 Михалкович Станислав 07.11.2011 21:27
Исправил - спасибо.
Действительно, writeln - оператор. Это в интерпретаторах команды.

При вызове графической процедуры writeln выводит в поток вывода некую строку, которая интерпретируетс я браузером как графическая команда. Поэтому в графических программах использовать writeln для чего-то еще нельзя
Цитировать
 
 
0 #1 22.10.2011 19:48
Уважаемый Станислав, здравствуйте!
На Вашей страничке
http://pascalabc.net/obuchenie-programmirovaniiu/modul-grafiki-dlya-wde

есть такое предложение:
Обратим внимание, что нет возможности вывода (команда writeln используется для генерации графических команд).
Я преподаю информатику в школе и язык Паскаль уже лет 20. Я не понимаю, почему Вы называете процедуру Writeln командой? Это на самом деле корректно? И что означает "используется для генерации графических команд"? Признаюсь, без иронии, это для меня новость.
Но пожалуйста, ответьте, как же работать с кнопками, полями ввода и прочим, что было в модуле VCL PascalABC?
Остаюсь почитателем вашего PascalABC.
Учитель информатики г. Ишима Тюменской обл.
Кузеев Анатолий.
Цитировать
 

Добавить комментарий


Защитный код
Обновить






  © 2007-2012, PascalABCNET Team Южный федеральный университет (РГУ)