Delphi: разработка программы простейшего графического редактора

Тип работы:
Курсовая
Предмет:
Программирование


Узнать стоимость

Детальная информация о работе

Выдержка из работы

КУРСОВАЯ РАБОТА

по дисциплине Информатика

Delphi: разработать программу простейшего графического редактора

Задание

Разработать программу простейшего графического редактора (аналог программы Paint системы Windows). Он должен писать текст в канве компонента TraintBox в указанном мышкой месте. Предусмотреть возможность изменения цвета, размера, типа шрифта, сохранения рисунка в графическом файле.

Оглавление

Введение

Введение

1. Структура программы

1.1 Описание

1.2 Основные составляющие

2. Структурные схемы алгоритма решения задачи

3. Текст программы

4. Работоспособность программы

Вывод

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

Введение

Программирование — это процесс создания компьютерных программ. В наши дни такая деятельность приветствуется, практически, во всех сферах. Элементарная бегущая строка, которую показывают по телевизору — и та создаётся с помощью программирования, не говоря уже о программах для работы в самых различных сферах деятельности. Также с помощью программирования можно создать графический редактор. Именно этому и посвящена данная курсовая работа.

Для выполнения задач курсовой работы я решил использовать среду программирования Delphi7. Мой выбор обусловлен наиболее простым и понятным в использовании интерфейсом программы.

Цели и задачи работы.

1) Освоение программирования;

2) Понимание структуры задачи, её построения;

3) Изучение какого-либо языка программирования. В данном случае — это язык Delphi;

4) Выявление ошибок в программировании и их устранение.

программа графический редактор delphi

1. Структура программы

1.1 Описание

Программа представляет собой аналог графического редактора Paint в системе Windows с урезанными функциями, написана на языке программирования Delphi в программе Borland Delphi7. Программа предусматривает возможности:

1) открытие изображения в графическом редакторе;

2) сохранение изображения;

3) написание текста в любом указанном мышкой месте;

4) изменение шрифта, размера и цвета текста;

1.2 Основные составляющие

PaintBox — область, на которой производятся все основные действия программы.

Image — область, в которую помещается открываемое изображение.

Panel 1 — панель инструментов.

MainMenu — главное меню.

SpeedButton — быстрая кнопка с изображением инструмента набора текста. С помощью нее можно ввести текст в любой выбранной области.

SpeedButton — быстрая кнопка с изображением карандаша. С ее помощью можно выполнить рисунок.

OpenPicture — диалог открытия изображения.

SavePicture — диалог сохранения изображения.

FontDialog — диалог выбора размера, вида и цвета текста

2. Структурные схемы алгоритма решения задачи

3. Текст программы

unit Unit1;

interface

uses

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

Dialogs, ColorGrd, StdCtrls, Spin, ExtCtrls, Menus, Buttons, ExtDlgs;

type

TForm1 = class (TForm)

Image1: TImage;

MainMenu1: TMainMenu;

Panel1: TPanel;

Panel2: TPanel;

N1: TMenuItem;

SpeedButton5: TSpeedButton;

SpeedButton8: TSpeedButton;

N8: TMenuItem;

N10: TMenuItem;

N11: TMenuItem;

N21: TMenuItem;

OpenPictureDialog1: TOpenPictureDialog;

SavePictureDialog1: TSavePictureDialog;

Memo1: TMemo;

ColorDialog1: TColorDialog;

ScrollBox1: TScrollBox;

N2: TMenuItem;

N3: TMenuItem;

FontDialog1: TFontDialog;

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

Y: Integer);

procedure Image1MouseDown (Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure FormCreate (Sender: TObject);

procedure SpeedButton5Click (Sender: TObject);

procedure N8Click (Sender: TObject);

procedure Image1MouseUp (Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure SpeedButton8Click (Sender: TObject);

procedure N10Click (Sender: TObject);

procedure N3Click (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

const

funcpencil = 1;

funcfill = 2;

funcgetcol = 3;

funcline = 4;

funcerase = 5;

funcspray = 6;

funcrect = 7;

funcellip = 8;

funcrrect = 9;

funcwrite = 10;

funcbezier = 11;

funcpolygon = 12;

funcbrush = 13;

var

Form1: TForm1;

func: byte;

fcol: tcolor;

bcol: tcolor;

Image: TImage;

fx, fy: integer;

stx, sty: integer;

eraser: integer;

but: TShiftState;

rad: byte;

stil: byte;

points: array [1. 4] of TPoint;

NumP: byte;

wid, het: LongInt;

mastab: byte;

polyg: array of TPoint;

brkind, brsize: byte;

implementation

{$R *. dfm}

uses proc, AbPr;

procedure TForm1. Image1MouseMove (Sender: TObject; Shift: TShiftState; X,

Y: Integer);

begin

if ssLeft in shift then

case func of

funcpencil: pencil (x, y, fcol);

end;

if ssright in shift then

case func of

funcpencil: pencil (x, y, bcol);

end;

Image. Canvas. MoveTo (x, y);

end;

procedure TForm1. Image1MouseDown (Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

var i: integer;

st: string;

count: integer;

begin

if ssLeft in shift then

case func of

funcwrite: begin

memo1. Font. Color:=fcol;

form1. memo1. Left:=x;

form1. memo1. Top:=y;

form1. memo1. Show;

func: =100;

end;

end;

if ssright in shift then

case func of

funcwrite: begin

memo1. Font. Color:=bcol;

form1. memo1. Left:=x;

form1. memo1. Top:=y;

form1. memo1. Show;

func: =100;

end;

end;

end;

procedure TForm1. FormCreate (Sender: TObject);

begin

//form2. hide;

memo1. Hide;

eraser: =3;

openpicturedialog1. FilterIndex:=4;

openpicturedialog1. InitialDir:=extractfilepath (paramstr (0));

savepicturedialog1. InitialDir:=extractfilepath (paramstr (0));

panhide;

Image: =form1. image1;

wid: =image. Width;

het: =image. Height;

image. Canvas. Pen. Mode:= pmcopy;

bcol: =clwhite;

Image. Canvas. FillRect (rect (0,0,image1. Width, image1. Height));

end;

procedure TForm1. SpeedButton5Click (Sender: TObject);

begin

func: =funcpencil;

panhide;

setprop;

end;

procedure TForm1. N10Click (Sender: TObject);

begin

if savepicturedialog1. Execute then

begin

image. AutoSize:=true;

image. Picture. LoadFromFile (openpicturedialog1. FileName);

end;

end;

procedure TForm1. N3Click (Sender: TObject);

begin

if FontDialog1. Execute= true then

Memo1. Font:=FontDialog1. Font;

end;

procedure TForm1. N8Click (Sender: TObject);

begin

if openpicturedialog1. Execute then

begin

image. AutoSize:=true;

image. Picture. LoadFromFile (openpicturedialog1. FileName);

end;

end;

procedure TForm1. Image1MouseUp (Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin

image. Canvas. Pen. Mode:= pmcopy;

end;

procedure TForm1. SpeedButton8Click (Sender: TObject);

begin

panhide;

setprop;

func: =funcwrite;

end;

end.

4. Работоспособность программы

Вывод

По мере выполнения поставленного задания я хорошо освоил язык программирования Delphi и изучил программу Borland Delphi7, изучил поставленную задачу и принципы ее решения. Написал программу и исправил ошибки, возникшие в процессе выполнения работы.

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

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

1. Лафоре Р. Объектно-ориентированное программирование / Р. Лафоре — 4-е изд. — Питер.: 2010. — 654 с.

2. Давыдов В. Г. Технологии программирования. / В. Г. Давыдов — Санкт-Петербург: БХВ-Петербург, 2009. — 432 с.

3. Касюк С. Т. Конспект лекций по дисциплине «Информатика» / С. Т. Касюк — Челябинск: ЮУрГУ, 2005. — 212 с.

ПоказатьСвернуть
Заполнить форму текущей работой