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

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

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

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

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

пз(ред).doc

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

        R:=Rect(X-6,Y-6,X+6,Y+6);

        Picture.Canvas.FillRect(Rect(X-5,Y-5,X+5,Y+5));

        PaintBox1.Canvas.DrawFocusRect(R);

        PaintBox1.Canvas.FillRect(Rect(X-5,Y-5,X+5,Y+5));

       end;

  end;

end;

end; 

procedure TForm1.N4Click(Sender: TObject); //сохранение изображения

begin

if SaveP.Execute then Picture.SaveToFile(SaveP.FileName);

end; 

procedure TForm1.N16Click(Sender: TObject); {открытие дополнительных настроек}

begin

Form2.ShowModal; //отображение окна Дополнительно 

end; 

procedure TForm1.UndoClick(Sender: TObject); //отмена

begin

Picture.Assign(BitMap); {вывод  на дополнительную плоскость  рисования ранее запомненного  изображения}

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

N14.Enabled := false;

end; 

procedure TForm1.SBPenClick(Sender: TObject); {выбор инструмента карандаш}

begin

  if not SBPen.Flat then

  begin

    SBLine.Flat := false;

    SBRect.Flat:=false;

    SBEllipse.Flat := false;

    SBText.Flat:=false;

    SBPen.Flat:=true;

    SBErase.Flat:=false;

    SBBrush.Flat:=false;

    a := 5; //выбор режима карандаша

   end

else

  begin

   SBPen.Flat := false;

   a:=0;

  end;

end; 

procedure TForm1.PaintBox1Paint(Sender: TObject); {действие при перерисовки плоскости рисования}

begin

StatusBar1.Panels[3].Text := Form2.SpinEdit1.Text; {вывод на StatusBar текущей толщины карандаша}

 PaintBox1.Canvas.Draw(0,0,Picture); (копирование на плоскость рисования дополнительной плоскости рисования}

end; 

procedure TForm1.SBBrushClick(Sender: TObject); {выбор инструмента заливка}

begin

if not SBBrush.Flat then

   begin

    SBLine.Flat := false;

    SBRect.Flat:=false;

    SBEllipse.Flat := false;

    SBText.Flat:=false;

    SBPen.Flat:=false;

    SBErase.Flat:=false;

    SBBrush.Flat:=true;

   a := 7; //выбор режима заливки

   end

else

  begin

   SBBrush.Flat:=false;

   a:=0;

  end;

end; 

procedure TForm1.N19Click(Sender: TObject); //помощь

begin

form3.Show //отображение  окна помощи

end; 

procedure TForm1.N6Click(Sender: TObject); //печать изображения

var

PRect: TRect;

begin

if PrintDialog1.Execute then

{задание размеров прямоугольника}

  begin

   with PRect do

    begin

      left := 0;

      top := 0;

      right := Printer.PageWidth;

      Bottom := Printer.PageHeight;

    end;

Printer.BeginDoc; //открытие печати

Printer.Canvas.StretchDraw(PRect, Picture); {рисование Picture в заданном прямоугольнике Prect}

 Printer.EndDoc; //закрытие печати

end;

end; 

procedure TForm1.N10Click(Sender: TObject); //копирование

begin

Clipboard.Assign(Picture); {копирование изображения в буфер обмена}

N11.Enabled:=true;

end; 

procedure TForm1.N11Click(Sender: TObject); //вставка

begin

Picture.Assign(Clipboard); {вставка изображения из буфера обмена}

PaintBox1.Height:=Picture.Height;

PaintBox1.Width:=Picture.Width;

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

end; 

procedure TForm1.SBEraseClick(Sender: TObject); {выбор инструмента ластик}

begin

if not SBErase.Flat then

  begin

    SBLine.Flat := false;

    SBRect.Flat:=false;

    SBEllipse.Flat := false;

    SBText.Flat:=false;

    SBPen.Flat:=false;

    SBErase.Flat:=true;

    SBBrush.Flat:=false;

    a:=6; //выбран режим ластика

  end

else

  begin

   SBErase.Flat:=false;

   a:=0

  end;

end; 

end. 
 
 

unit Dopolnit; 

interface 

uses

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

  Dialogs, StdCtrls, Spin; 

type

  TForm2 = class(TForm)

    Button1: TButton;

    Button2: TButton;

    SpinEdit1: TSpinEdit;

    Button3: TButton;

    Label1: TLabel;

    ComboBox1: TComboBox;

    ComboBox2: TComboBox;

    Label2: TLabel;

    Label3: TLabel;

    procedure Button3Click(Sender: TObject);

    procedure ComboBox1Change(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end; 

var

  Form2: TForm2; 

implementation

  uses GrafRed; 

{$R *.dfm} 

procedure TForm2.Button3Click(Sender: TObject); //параметры шрифта

begin

if Form1.FontDialog1.Execute then MyFont := Form1.FontDialog1.Font;

Form1.FormPaint(nil);

end; 

procedure TForm2.ComboBox1Change(Sender: TObject); //стиль линии

{при выборе стиля линии, отличного от сплошного, запрещается менять толщину линии}

begin

if ComboBox1.ItemIndex = 1 then SpinEdit1.Enabled:=true

else

begin

  SpinEdit1.Enabled:=false;

  SpinEdit1.Text:=IntToStr(1);

end;

end; 

end. 
 
 

unit ImageSize; 

interface 

uses

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

  Dialogs, StdCtrls; 

type

  TForm5 = class(TForm)

    Edit1: TEdit;

    Edit2: TEdit;

    Button1: TButton;

    Button2: TButton;

    Label1: TLabel;

    Label2: TLabel;

    Label3: TLabel;

    Label4: TLabel;

    procedure Button1Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end; 

var

  Form5: TForm5; 

implementation 

uses GrafRed; 

{$R *.dfm} 

procedure TForm5.Button1Click(Sender: TObject); //кнопка Ок

begin

if (StrToInt(Edit1.Text) or StrToInt(Edit2.Text))>1500 then ShowMessage('Размеры изображения должны быть меньше либо равны 1500 пикселов') else

begin

  Picture.Width := StrToInt(Edit1.Text);

  Picture.Height := StrToInt(Edit2.Text);

 end;

end; 

end.

 

Приложение  Б – снимки окон программы

 

Рисунок Б.1 – Главное окно программы 
 
 

 

 

Рисунок Б.2 – Программа в работе

 

 Рисунок  Б.3 – Окно помощи

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