Автор: Пользователь скрыл имя, 22 Ноября 2011 в 17:31, курсовая работа
Целью данной работы является разработка программы, позволяющей рисовать графические примитивы.
Представление данных на мониторе компьютера в графическом виде впервые было реализовано в середине 50-х годов для больших ЭВМ, применявшихся в научных и военных исследованиях. С тех пор графический способ отображения данных стал неотъемлемой принадлежностью подавляющего числа компьютерных систем, в особенности персональных.
Листинг программы расположен в приложении А.
4.Руководство пользователя
Для нормального функционирования приложения должны быть обеспечены следующие минимальные требования к составу технических средств:
Соблюдение этих условий обеспечит нормальную работу программы.
Программа
предоставляет пользователю возможность
рисования графических
Для запуска программы необходимо запустить SFX-архив GrafRed.exe, указать путь извлечения и нажать кнопку «Извлечь». Затем по указанному пути найти файл Графический редактор.exe и запустить его. Так же возможен запуск программы с помощью командной строки, указав в ней путь и имя файла. Выйти из программы можно следующими способами: нажав “крестик” в правом верхнем углу приложения; нажав последовательность клавиш Alt+F4.
В ходе выполнения программы могут появится следующие сообщения рисунок 2 – сообщения:
b
c
Рисунок
2 – Сообщения.
Пользовательский интерфейс программы является стандартизированным и естественно понятным, что существенно сокращает время обучения пользователей работы в данной программе. Наличие «горячих» клавиш значительно упрощает использование программы. При наведении курсора мыши на какую-либо кнопку отображается подсказка.
Заключение
В результате выполнения данного курсового проекта была получена работоспособная программа, которая соответствует требованиям, предъявляемым на этапе проектирования.
В программе реализованы принципы объектно-ориентированного программирования.
Цель курсового проекта, достигнута: создана программа, позволяющая рисовать графические примитивы (линия, прямоугольник, окружность), а также реализованы возможность свободного рисования (карандаш), заливка указанных областей иображения и вставка строки текста. Кроме того, в программе реализован ряд дополнительных возможностей, свойственным подобным графическим системам (можно менять стили линии и заливки, толщину линии, параметры шрифта).
В
созданную программу можно
Рассмотрены основные принципы программирования в среде DELPHI.
Теоретические
сведения были закреплены практическими
занятиями.
Приложение
А – листинг программы
unit GrafRed;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, Buttons,
ColorGrd, ExtDlgs, Menus, StdCtrls, ComCtrls, Printers, Clipbrd;
type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
OpenPictureDialog1: TOpenPictureDialog;
SaveP: TSavePictureDialog;
PrintDialog1: TPrintDialog;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
N10: TMenuItem;
N11: TMenuItem;
N12: TMenuItem;
N13: TMenuItem;
ScrollBox1: TScrollBox;
PaintBox1: TPaintBox;
FontDialog1: TFontDialog;
StatusBar1: TStatusBar;
Bevel1: TBevel;
Label3: TLabel;
Label4: TLabel;
CBLine: TColorBox;
CBBrush: TColorBox;
SBPen: TSpeedButton;
SBErase: TSpeedButton;
SBBrush: TSpeedButton;
SpeedButton4: TSpeedButton;
SBLine: TSpeedButton;
SBRect: TSpeedButton;
SBEllipse: TSpeedButton;
SBText: TSpeedButton;
Label1: TLabel;
N18: TMenuItem;
N19: TMenuItem;
N15: TMenuItem;
N16: TMenuItem;
N14: TMenuItem;
procedure FormCreate(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N8Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N13Click(Sender: TObject);
procedure SBLineClick(Sender: TObject);
procedure PaintBox1MouseDown(Sender: TObject; mbLeft: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure PaintBox1MouseUp(Sender: TObject; mbLeft: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure SBRectClick(Sender: TObject);
procedure SBEllipseClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormPaint(Sender: TObject);
procedure SBTextClick(Sender: TObject);
procedure PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure N4Click(Sender: TObject);
procedure N16Click(Sender: TObject);
procedure UndoClick(Sender: TObject);
procedure SBPenClick(Sender: TObject);
procedure PaintBox1Paint(Sender: TObject);
procedure SBBrushClick(Sender: TObject);
procedure N19Click(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure N10Click(Sender: TObject);
procedure N11Click(Sender: TObject);
procedure SBEraseClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Picture, BitMap: TBitmap;
X_Begin, Y_Begin:integer;
a,b,c:byte;
MyFont: TFont;
MDown: Boolean;
R:TRect;
implementation
uses Dopolnit, Help, InputBox,
ImageSize;
{$R *.dfm}
function BrushStyle(c:byte):
begin
case c of
{установка стиля заливки в зависимости от выбора пользователя}
0: Picture.Canvas.Brush.Style := bsClear;
1: Picture.Canvas.Brush.Style := bsSolid;
2: Picture.Canvas.Brush.Style := bsHorizontal;
3: Picture.Canvas.Brush.Style := bsVertical;
4: Picture.Canvas.Brush.Style := bsFDiagonal;
5: Picture.Canvas.Brush.Style := bsBDiagonal;
6: Picture.Canvas.Brush.Style := bsCross;
7: Picture.Canvas.Brush.Style := bsDiagCross;
end;
end;
function PenStyle(b:byte):TPenStyle;
begin
case b of
{установка стиля линии в зависимости от выбора пользователя}
0: Picture.Canvas.Pen.Style := psClear;
1: Picture.Canvas.Pen.Style := psSolid;
2: Picture.Canvas.Pen.Style := psDash;
3: Picture.Canvas.Pen.Style := psDot;
4: Picture.Canvas.Pen.Style := psDashDot;
5: Picture.Canvas.Pen.Style := psDashDotDot;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
MDown := false;
N14.Enabled := false;
N11.Enabled:=false;
BitMap := TBitmap.Create;
Picture := TBitmap.Create;
BitMap.Width := PaintBox1.Width;
BitMap.Height := PaintBox1.Height;
Picture.Width := PaintBox1.Width;
Picture.Height := PaintBox1.Height;
MyFont := Form1.Font;
end;
procedure TForm1.N2Click(Sender: TObject); //создание нового холста
begin
if Application.MessageBox('Сейчас будет создан новый холст. Вы хотите продолжить?','Новый холст',MB_YESNO or MB_ICONQUESTION)=ID_YES then
begin
Form5.Edit1.Text := IntToStr(273); {стандартный размер холста по горизнтали}
Form5.Edit2.Text := IntToStr(217); (стандартный размер холста по вертикали}
Form5.ShowModal; //появление окна задания размеров холста
Picture.Canvas.Brush.Color:= clWhite;
Picture.Canvas.Pen.Style:=
Picture.Canvas.Brush.Style:=
Picture.Canvas.Rectangle(0,0,
Form1.FormPaint(nil); //
end;
end;
procedure TForm1.N8Click(Sender: TObject);
begin
Close
end;
procedure TForm1.N3Click(Sender: TObject); //открытие изображения
var FileName: String;
begin
if OpenPictureDialog1.Execute then
begin
Picture.LoadFromFile(
FileName := OpenPictureDialog1.FileName;
PaintBox1.Height:=Picture.
PaintBox1.Width:=Picture.
PaintBox1.Canvas.Draw(0,0,
end;
end;
procedure TForm1.N13Click(Sender: TObject); //о программе