Автор: Пользователь скрыл имя, 22 Ноября 2011 в 17:31, курсовая работа
Целью данной работы является разработка программы, позволяющей рисовать графические примитивы.
Представление данных на мониторе компьютера в графическом виде впервые было реализовано в середине 50-х годов для больших ЭВМ, применявшихся в научных и военных исследованиях. С тех пор графический способ отображения данных стал неотъемлемой принадлежностью подавляющего числа компьютерных систем, в особенности персональных.
R:=Rect(X-6,Y-6,X+6,Y+6);
Picture.Canvas.FillRect(Rect(
PaintBox1.Canvas.
PaintBox1.Canvas.FillRect(
end;
end;
end;
end;
procedure TForm1.N4Click(Sender: TObject); //сохранение изображения
begin
if SaveP.Execute then Picture.SaveToFile(SaveP.
end;
procedure TForm1.N16Click(Sender: TObject); {открытие дополнительных настроек}
begin
Form2.ShowModal; //отображение окна Дополнительно
end;
procedure TForm1.UndoClick(Sender: TObject); //отмена
begin
Picture.Assign(BitMap); {вывод на дополнительную плоскость рисования ранее запомненного изображения}
PaintBox1.Canvas.Draw(0,0,
N14.Enabled := false;
end;
procedure TForm1.SBPenClick(Sender: TObject); {выбор инструмента карандаш}
begin
if not SBPen.Flat then
begin
SBLine.Flat := false;
SBRect.Flat:=false;
SBEllipse.Flat := false;
SBText.Flat:=false;
SBPen.Flat:=true;
SBErase.Flat:=false;
SBBrush.Flat:=false;
a := 5; //выбор режима карандаша
end
else
begin
SBPen.Flat := false;
a:=0;
end;
end;
procedure TForm1.PaintBox1Paint(Sender: TObject); {действие при перерисовки плоскости рисования}
begin
StatusBar1.Panels[3].Text := Form2.SpinEdit1.Text; {вывод на StatusBar текущей толщины карандаша}
PaintBox1.Canvas.Draw(0,0,
end;
procedure TForm1.SBBrushClick(Sender: TObject); {выбор инструмента заливка}
begin
if not SBBrush.Flat then
begin
SBLine.Flat := false;
SBRect.Flat:=false;
SBEllipse.Flat := false;
SBText.Flat:=false;
SBPen.Flat:=false;
SBErase.Flat:=false;
SBBrush.Flat:=true;
a := 7; //выбор режима заливки
end
else
begin
SBBrush.Flat:=false;
a:=0;
end;
end;
procedure TForm1.N19Click(Sender: TObject); //помощь
begin
form3.Show //отображение окна помощи
end;
procedure TForm1.N6Click(Sender: TObject); //печать изображения
var
PRect: TRect;
begin
if PrintDialog1.Execute then
{задание размеров прямоугольника}
begin
with PRect do
begin
left := 0;
top := 0;
right := Printer.PageWidth;
Bottom := Printer.PageHeight;
end;
Printer.BeginDoc; //открытие печати
Printer.Canvas.StretchDraw(
Printer.EndDoc; //закрытие печати
end;
end;
procedure TForm1.N10Click(Sender: TObject); //копирование
begin
Clipboard.Assign(Picture); {копирование изображения в буфер обмена}
N11.Enabled:=true;
end;
procedure TForm1.N11Click(Sender: TObject); //вставка
begin
Picture.Assign(Clipboard); {вставка изображения из буфера обмена}
PaintBox1.Height:=Picture.
PaintBox1.Width:=Picture.
PaintBox1.Canvas.Draw(0,0,
end;
procedure TForm1.SBEraseClick(Sender: TObject); {выбор инструмента ластик}
begin
if not SBErase.Flat then
begin
SBLine.Flat := false;
SBRect.Flat:=false;
SBEllipse.Flat := false;
SBText.Flat:=false;
SBPen.Flat:=false;
SBErase.Flat:=true;
SBBrush.Flat:=false;
a:=6; //выбран режим ластика
end
else
begin
SBErase.Flat:=false;
a:=0
end;
end;
end.
unit Dopolnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Spin;
type
TForm2 = class(TForm)
Button1: TButton;
Button2: TButton;
SpinEdit1: TSpinEdit;
Button3: TButton;
Label1: TLabel;
ComboBox1: TComboBox;
ComboBox2: TComboBox;
Label2: TLabel;
Label3: TLabel;
procedure Button3Click(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
uses GrafRed;
{$R *.dfm}
procedure TForm2.Button3Click(Sender: TObject); //параметры шрифта
begin
if Form1.FontDialog1.Execute then MyFont := Form1.FontDialog1.Font;
Form1.FormPaint(nil);
end;
procedure TForm2.ComboBox1Change(Sender: TObject); //стиль линии
{при выборе стиля линии, отличного от сплошного, запрещается менять толщину линии}
begin
if ComboBox1.ItemIndex = 1 then SpinEdit1.Enabled:=true
else
begin
SpinEdit1.Enabled:=false;
SpinEdit1.Text:=IntToStr(1);
end;
end;
end.
unit ImageSize;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm5 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
Button2: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form5: TForm5;
implementation
uses GrafRed;
{$R *.dfm}
procedure TForm5.Button1Click(Sender: TObject); //кнопка Ок
begin
if (StrToInt(Edit1.Text) or StrToInt(Edit2.Text))>1500 then ShowMessage('Размеры изображения должны быть меньше либо равны 1500 пикселов') else
begin
Picture.Width := StrToInt(Edit1.Text);
Picture.Height := StrToInt(Edit2.Text);
end;
end;
end.
Приложение Б – снимки окон программы
Рисунок
Б.1 – Главное окно программы
Рисунок Б.2 – Программа в работе
Рисунок Б.3 – Окно помощи