- •«Разработка программы “Графический редактор”»
- •2013 Г. Содержание.
- •Введение
- •1. Общая часть
- •1.1 Анализ предметной области
- •2. Условная конструкция
- •3. Блок обобщенного цикла
- •Объектно-ориентированное программирование
- •1.2 Постановка задачи
- •2. Технология разработки программного продукта (технологическая часть)
- •2.1. Анализ входных и выходных данных
- •2.2. Инфологическая модель
- •2.3 Выбор и обоснование программных средств
- •2.4 Выбор и обоснование аппаратных средств разработки
- •3. Описание программных модулей
- •3.1. Структура и алгоритм работы программного продукта
- •3.2 Инструментарий разработки программного продукта
- •3.3. Интерфейс программного продукта
- •4. Экспериментальная часть
- •4.1 Назначение испытаний
- •4.2. Результаты испытаний
- •5. Охрана труда
- •Заключение
- •Список использованных источников
- •«Графический редактор»
- •2. Обращение к программе
- •3. Выполнение программы
- •Implementation
3. Выполнение программы
Последовательность действий оператора (пользователя):
Запуск программы (щелкнуть по значку "Project1")
После этого должна, появится главная форма с кнопками
Приложение В.
Листинг
Программный код графического редактора.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Spin, StdCtrls, ExtCtrls, ExtDlgs, ColorGrd, Buttons;
type
TForm1 = class(TForm)
Image1: TImage;
ScrollBar1: TScrollBar;
ScrollBar2: TScrollBar;
ScrollBar3: TScrollBar;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
SpinEdit1: TSpinEdit;
Label4: TLabel;
SavePictureDialog1: TSavePictureDialog;
Button1: TButton;
Button2: TButton;
Button3: TButton;
ColorGrid: TColorGrid;
Bevel1: TBevel;
pnl_bg: TPanel;
pnl_fb: TPanel;
Button4: TButton;
Button5: TButton;
OpenPictureDialog1: TOpenPictureDialog;
SaveDialog1: TSaveDialog;
procedure ScrollBar1Change(Sender: TObject);
procedure ScrollBar2Change(Sender: TObject);
procedure ScrollBar3Change(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure ColorGridChange(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
cvet:integer;
cvet2:integer;
Implementation
{$R *.dfm}
Формирование нового цвета и вывод числового значения составляющих цветовой палитры в окно ввода:
procedure TForm1.ScrollBar1Change(Sender: TObject);
begin
cvet:=rgb(scrollbar1.Position, scrollbar2.Position,scrollbar3.Position);
edit1.Text:=inttostr(scrollbar1.Position);
end;
procedure TForm1.ScrollBar2Change(Sender: TObject);
begin
cvet:=rgb(scrollbar1.Position, scrollbar2.Position, scrollbar3.Position);
edit2.Text:=inttostr(scrollbar2.Position);
end;
procedure TForm1.ScrollBar3Change(Sender: TObject);
begin
cvet:=rgb(scrollbar1.Position, scrollbar2.Position, scrollbar3.Position);
edit3.Text:=inttostr(scrollbar3.Position);
end;
Получившийся цвет необходимо показать пользователю:
procedure TForm1.Button1Click(Sender: TObject);
begin
edit4.Color:=cvet;
end;
Толщину линии можно задать так:
procedure TForm1.SpinEdit1Change(Sender: TObject);
begin
image1.Canvas.Pen.Width:=spinedit1.value;
end;
При движении мыши с нажатой левой клавишей должен оставаться след:
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
Begin
Устанавливаем цвет карандаша и кисти таким, каким он получится при изменении составляющих RGB – палитры:
image1.Canvas.Pen.Color:=cvet;
image1.Canvas.brush.Color:=cvet;
if ssleft in shift then image1.canvas.lineto(x,y);
end;
После отпускания мыши и перемещения курсора в новое место след оставаться не должен.
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
b
with image1.canvas do
case button of
mbleft:moveto(x,y);
mbright:floodfill(x,y,cvet,fsborder);
end;
end;
Сохранение рисунка в файле:
procedure TForm1.Button2Click(Sender: TObject);
begin
with savepicturedialog1 do if execute then image1.Picture.SaveToFile(filename); end;
procedure TForm1.Button3Click(Sender: TObject);
begin
close; end;
procedure TForm1.FormActivate(Sender: TObject);
begin
image1.Canvas.Brush.Color:=clwhite;
end;
Для управления панелим цветов ColorGrid:
procedure TForm1.ColorGridChange(Sender: TObject);
begin
pnl_fb.Color:=ColorGrid.ForegroundColor;
pnl_bg.Color:=ColorGrid.BackgroundColor;
cvet:=pnl_fb.Color;
cvet2:=pnl_bg.Color;
end;
procedure TForm1.FormShow(Sender: TObject);
begin
image1.Canvas.FillRect(ClientRect);
end;
Окно очистки фона под цвет выбранной заливки
procedure TForm1.Button4Click(Sender: TObject);
begin
image1.Canvas.FillRect(ClientRect);
end;
Окно открытия рисунка
procedure TForm1.Button5Click(Sender: TObject);
var
bmp : TBitmap;
begin
bmp := Tbitmap.Create;
if OpenPictureDialog1.Execute then
begin
bmp.LoadFromFile (OpenPictureDialog1.FileName);
Image1.Canvas.Draw(10,10,bmp);
end;end;
end.