Графический редактор

Автор: Пользователь скрыл имя, 22 Ноября 2011 в 17:31, курсовая работа

Описание работы

Целью данной работы является разработка программы, позволяющей рисовать графические примитивы.
Представление данных на мониторе компьютера в графическом виде впервые было реализовано в середине 50-х годов для больших ЭВМ, применявшихся в научных и военных исследованиях. С тех пор графический способ отображения данных стал неотъемлемой принадлежностью подавляющего числа компьютерных систем, в особенности персональных.

Работа содержит 1 файл

пз(ред).doc

— 310.50 Кб (Скачать)

      

      Листинг программы расположен  в приложении А.

 

4.Руководство  пользователя

   Для нормального функционирования приложения должны быть обеспечены следующие минимальные требования к составу технических средств:

  1. операционная система «Windows 95»;
  2. так как в программе имеет место рисование фигур, с последующим ее заполнением произвольным цветом, то для нормальной работы программы необходимо наличии видеокарты, поддерживающей 256 цветов и размером видеопамяти 1 Mb;
  3. так как программа производит математические вычисления и отнимает процессорное время, поэтому компьютер должен иметь процессор с частотой 90 MHz;
  4. объем оперативной памяти 16 Mb.

   Соблюдение  этих условий обеспечит нормальную работу программы.

   Программа предоставляет пользователю возможность  рисования графических примитивов. При работе с программой пользователю предоставляются следующие возможности: рисование линии, прямоугольника, окружности, вставка строки текста, свободное рисование, стирание нарисованного изображения, заливка изображения, при помощи соответствующих инструментов, а также по мимо этого у пользователя есть возможность выбирать цвета, стили, толщину линии и заливки, настраивать шрифт строки текста, сохранять созданные изображения в формате .bmp, открывать изображения в формате .bmp, печатать изображения, копировать, вставлять изображения, задавать начальные размеры изображения. Приложение имеет встроенную справочную систему, позволяющую пользователю облегчить работу с программой.  Справочная система отображается  на экране при   нажатии клавиши F1 или из соответствующего пункта меню.  Так же программа содержит  систему контроля возникновения ошибок.

    Для запуска программы необходимо запустить  SFX-архив GrafRed.exe, указать путь извлечения и нажать кнопку «Извлечь». Затем по указанному пути найти файл Графический редактор.exe и запустить его. Так же возможен запуск программы с помощью командной строки, указав в ней путь и имя файла. Выйти из программы можно следующими способами: нажав “крестик” в правом верхнем углу приложения; нажав последовательность клавиш Alt+F4.

    

    В ходе выполнения программы могут  появится следующие сообщения рисунок 2 – сообщения:

    1. это сообщение появляется в том случае, если в меню Файл щёлкнуть мышкой по строке Новый или нажать комбинацию клавиш Ctrl+N. Если нажать кнопку Да, то откроется новый холст, иначе, при нажатии кнопки Нет новый холст создан не будет.
    2. это сообщение появляется каждый раз при закрытии приложения Графический редактор. Если нажата кнопка Да, то открывается диалоговое окно для сохранения изображения в формате bmp. Если нажата кнопка Нет, то происходит завершение приложения без сохранения изображения. Если нажата кнопка Отмена, то завершение приложения прекращается.
    3. это сообщение появляется в том случае, если пользователь задал хоть один из параметров размера изображения больше 1500 пикселов.

                                                               a

b

  c

 

Рисунок 2 – Сообщения. 

    Пользовательский  интерфейс программы является стандартизированным  и естественно понятным, что существенно сокращает время обучения пользователей работы в данной программе. Наличие «горячих» клавиш значительно упрощает использование программы. При наведении курсора мыши на какую-либо кнопку отображается подсказка.

 

     Заключение

    В результате выполнения данного курсового  проекта была получена работоспособная программа, которая соответствует требованиям, предъявляемым на этапе проектирования.

    В программе реализованы принципы объектно-ориентированного программирования.

    Цель  курсового проекта, достигнута: создана  программа, позволяющая рисовать графические примитивы (линия, прямоугольник, окружность), а также реализованы возможность свободного рисования (карандаш), заливка указанных областей иображения и вставка строки текста. Кроме того, в программе реализован ряд дополнительных возможностей, свойственным подобным графическим системам (можно менять стили линии и заливки, толщину линии, параметры шрифта).

    В созданную программу можно добавить инструмент выделения указанной  области изображения и реализовать  копирование не всего изображения, а только указанной области, сделать фон вставляемой строки текста прозрачным.

    Рассмотрены основные принципы программирования в среде DELPHI.

    Теоретические сведения были закреплены практическими  занятиями. 

 

    

Список  использованной литературы

 

Приложение  А – листинг программы 

unit GrafRed; 

interface 

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, ExtCtrls, Buttons, ColorGrd, ExtDlgs, Menus, StdCtrls, ComCtrls, Printers, Clipbrd; 

type

  TForm1 = class(TForm)

    MainMenu1: TMainMenu;

    OpenPictureDialog1: TOpenPictureDialog;

    SaveP: TSavePictureDialog;

    PrintDialog1: TPrintDialog;

    N1: TMenuItem;

    N2: TMenuItem;

    N3: TMenuItem;

    N4: TMenuItem;

    N5: TMenuItem;

    N6: TMenuItem;

    N7: TMenuItem;

    N8: TMenuItem;

    N9: TMenuItem;

    N10: TMenuItem;

    N11: TMenuItem;

    N12: TMenuItem;

    N13: TMenuItem;

    ScrollBox1: TScrollBox;

    PaintBox1: TPaintBox;

    FontDialog1: TFontDialog;

    StatusBar1: TStatusBar;

    Bevel1: TBevel;

    Label3: TLabel;

    Label4: TLabel;

    CBLine: TColorBox;

    CBBrush: TColorBox;

    SBPen: TSpeedButton;

    SBErase: TSpeedButton;

    SBBrush: TSpeedButton;

    SpeedButton4: TSpeedButton;

    SBLine: TSpeedButton;

    SBRect: TSpeedButton;

    SBEllipse: TSpeedButton;

    SBText: TSpeedButton;

    Label1: TLabel;

    N18: TMenuItem;

    N19: TMenuItem;

    N15: TMenuItem;

    N16: TMenuItem;

    N14: TMenuItem;

    procedure FormCreate(Sender: TObject);

    procedure N2Click(Sender: TObject);

    procedure N8Click(Sender: TObject);

    procedure N3Click(Sender: TObject);

    procedure N13Click(Sender: TObject);

    procedure SBLineClick(Sender: TObject);

    procedure PaintBox1MouseDown(Sender: TObject; mbLeft: TMouseButton;

      Shift: TShiftState; X, Y: Integer);

    procedure PaintBox1MouseUp(Sender: TObject; mbLeft: TMouseButton;

      Shift: TShiftState; X, Y: Integer);

    procedure SBRectClick(Sender: TObject);

    procedure SBEllipseClick(Sender: TObject);

    procedure FormClose(Sender: TObject; var Action: TCloseAction);

    procedure FormPaint(Sender: TObject);

    procedure SBTextClick(Sender: TObject);

    procedure PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X,

      Y: Integer);

    procedure N4Click(Sender: TObject);

    procedure N16Click(Sender: TObject);

    procedure UndoClick(Sender: TObject);

    procedure SBPenClick(Sender: TObject);

    procedure PaintBox1Paint(Sender: TObject);

    procedure SBBrushClick(Sender: TObject);

    procedure N19Click(Sender: TObject);

    procedure N6Click(Sender: TObject);

    procedure N10Click(Sender: TObject);

   procedure N11Click(Sender: TObject);

    procedure SBEraseClick(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end; 

var

  Form1: TForm1;

  Picture, BitMap: TBitmap;

  X_Begin, Y_Begin:integer;

  a,b,c:byte;

  MyFont: TFont;

  MDown: Boolean;

  R:TRect; 

implementation

  uses Dopolnit, Help, InputBox, ImageSize; 

{$R *.dfm} 

function BrushStyle(c:byte):TBrushStyle;

 begin

  case c of

 {установка стиля заливки в зависимости от выбора пользователя}

   0: Picture.Canvas.Brush.Style := bsClear;

   1: Picture.Canvas.Brush.Style := bsSolid;

   2: Picture.Canvas.Brush.Style := bsHorizontal;

   3: Picture.Canvas.Brush.Style := bsVertical;

   4: Picture.Canvas.Brush.Style := bsFDiagonal;

   5: Picture.Canvas.Brush.Style := bsBDiagonal;

   6: Picture.Canvas.Brush.Style := bsCross;

   7: Picture.Canvas.Brush.Style := bsDiagCross;

  end;

end; 

function PenStyle(b:byte):TPenStyle;

 begin

  case b of

{установка стиля линии в зависимости от выбора пользователя}

   0: Picture.Canvas.Pen.Style := psClear;

   1: Picture.Canvas.Pen.Style := psSolid;

   2: Picture.Canvas.Pen.Style := psDash;

   3: Picture.Canvas.Pen.Style := psDot;

   4: Picture.Canvas.Pen.Style := psDashDot;

   5: Picture.Canvas.Pen.Style := psDashDotDot;

end;

end; 

procedure TForm1.FormCreate(Sender: TObject);

begin

MDown := false;

N14.Enabled := false;

N11.Enabled:=false;

BitMap := TBitmap.Create;

Picture := TBitmap.Create;

BitMap.Width := PaintBox1.Width;

BitMap.Height := PaintBox1.Height;

Picture.Width := PaintBox1.Width;

Picture.Height := PaintBox1.Height;

MyFont := Form1.Font;

end; 

procedure TForm1.N2Click(Sender: TObject); //создание нового холста

begin

if Application.MessageBox('Сейчас будет создан новый холст. Вы хотите продолжить?','Новый холст',MB_YESNO or MB_ICONQUESTION)=ID_YES then

  begin

   Form5.Edit1.Text := IntToStr(273); {стандартный размер холста по горизнтали}

   Form5.Edit2.Text := IntToStr(217); (стандартный размер холста по вертикали}

   Form5.ShowModal; //появление  окна задания размеров холста

   Picture.Canvas.Brush.Color:= clWhite;

   Picture.Canvas.Pen.Style:=psClear;

   Picture.Canvas.Brush.Style:=bsSolid;

   Picture.Canvas.Rectangle(0,0,Picture.Width,Picture.Height);

   Form1.FormPaint(nil); //

  end;

end; 

procedure TForm1.N8Click(Sender: TObject);

begin

Close

end; 

procedure TForm1.N3Click(Sender: TObject); //открытие изображения 

var FileName: String;

begin

if OpenPictureDialog1.Execute then

  begin

    Picture.LoadFromFile(OpenPictureDialog1.FileName);

    FileName := OpenPictureDialog1.FileName;

    PaintBox1.Height:=Picture.Height; //задание размера холста в

    PaintBox1.Width:=Picture.Width;   //соответствии с размерами                                   //открываемого изображения

    PaintBox1.Canvas.Draw(0,0,Picture);

  end;

end; 

procedure TForm1.N13Click(Sender: TObject); //о программе

Информация о работе Графический редактор