Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
diplomka 1.doc
Скачиваний:
33
Добавлен:
26.05.2015
Размер:
324.61 Кб
Скачать

3. Выполнение программы

Последовательность действий оператора (пользователя):

  1. Запуск программы (щелкнуть по значку "Project1")

  2. После этого должна, появится главная форма с кнопками

Приложение В.

Листинг

Программный код графического редактора.

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

egin

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.

56

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]