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

курсовая работа

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.

Делись добром ;)