Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
3
Добавлен:
15.04.2015
Размер:
11.74 Кб
Скачать
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, ExtDlgs, Unit2, Buttons, ExtCtrls, ComCtrls, StdCtrls,
Spin;

type
Tredactor = class(TForm)
MainMenu1: TMainMenu;
OpenPictureDialog1: TOpenPictureDialog;
SavePictureDialog1: TSavePictureDialog;
N1: TMenuItem;
new: TMenuItem;
open: TMenuItem;
save: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
FontDialog1: TFontDialog;
ColorDialog1: TColorDialog;
Panel1: TPanel;
Brush: TSpeedButton;
Eraser: TSpeedButton;
Line: TSpeedButton;
FColor: TPanel;
BcColor: TPanel;
TrackBar1: TTrackBar;
Label1: TLabel;
Label2: TLabel;
Rectangle: TSpeedButton;
Ellips: TSpeedButton;
Fill: TSpeedButton;
Angle: TSpeedButton;
SpinEdit1: TSpinEdit;
CheckBox1: TCheckBox;
Label3: TLabel;
Label4: TLabel;
Select: TSpeedButton;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N9: TMenuItem;
procedure N6Click(Sender: TObject);
procedure saveClick(Sender: TObject);
procedure openClick(Sender: TObject);
procedure newClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure BrushClick(Sender: TObject);
procedure LineClick(Sender: TObject);
procedure EraserClick(Sender: TObject);
procedure TrackBar1Change(Sender: TObject);
procedure FColorClick(Sender: TObject);
procedure BcColorClick(Sender: TObject);
procedure AngleClick(Sender: TObject);
procedure RectangleClick(Sender: TObject);
procedure EllipsClick(Sender: TObject);
procedure FillClick(Sender: TObject);
procedure SpinEdit1Change(Sender: TObject);
procedure N8Click(Sender: TObject);
procedure SelectClick(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N9Click(Sender: TObject);




private
{ Private declarations }
public
{ Public declarations }
end;

var
redactor: Tredactor;
Form_pic: array [1..10] of TPic;// массив форм для редактирования изображений
col_form: integer;//число форм
act_form: integer;//активная форма
nom_form: integer;//
drawcolor, bcolor: TColor;//Цвет линий и цвет фона
LW, BW, EW: integer;//Толщина линий Линии, Кисти, Стерки
AngleW: integer; //Толщина линии многоугольника
RW:integer;//Толщина линии прямоугольника
EllipW: integer; //Тольщина линии эллипса
Nangle: integer; //Число углов многоугольника
CopyBuf: TBitmap;//Буфер обмена

implementation

uses Unit3, Unit4;

{$R *.dfm}

//----------------------------------------------------------------------------//
//Нажатие на кнопку выход
procedure Tredactor.N6Click(Sender: TObject);
begin
//Закрытия формы
close();
end;
//----------------------------------------------------------------------------//
//Нажатие на Сохранить
procedure Tredactor.saveClick(Sender: TObject);
begin
//Если диалог сохранения завершен успешно - делаем
if SavePictureDialog1.Execute then
begin
//Сохранение картинки в файл
Form_pic[act_form].Image1.Picture.Bitmap.SaveToFile(SavePictureDialog1.FileName);
//Изменение заголовка окна
Form_pic[act_form].Caption:=SavePictureDialog1.FileName;
end;
end;
//----------------------------------------------------------------------------//
//Открытие картинки
procedure Tredactor.openClick(Sender: TObject);
var
BMP: TBitmap;//переменная для хранения картинки
h, w: integer;//Высота и ширина(переменные)
begin
//Если диалог открытия завершен успешно - делаем
if OpenPictureDialog1.Execute then
begin
//Если не открыта ни одна форма
if col_form=0 then newClick(sender);
BMP:=TBitmap.Create;//Создание переменной для хранения картинки
BMP.LoadFromFile(OpenPictureDialog1.FileName);//Загрузка картинкив переменную
h:=BMP.Height+Pic.StatusBar1.Height;//Присвоение переменной высоты картинки
w:=BMP.Width;
//Если размеры формы больше экрана далаем их меньше
if h>=Screen.Height then h:=Screen.Height-50;
if w>=Screen.Width then w:=Screen.Width-50;
//Присвоение переменной ширины картинки
Form_pic[act_form].ClientHeight:=h+4;//Подстройка размеров формы
Form_pic[act_form].ClientWidth:=w+4; //Подстройка размеров формы
Form_pic[act_form].Show; //Показ формы

//Вставка картинки из переменной на форму
Form_pic[act_form].Image1.Picture.Bitmap:=BMP;
//Уничтожение переменной
BMP.Destroy;
//Присвоение заголовку имени открытого файла
Form_pic[act_form].Caption:=OpenPictureDialog1.FileName;
//Активация кнопки Изменение размера
N8.Enabled:=true;
//Активация кнопки Сохранить
save.Enabled:=true;
//Активация кнопки Фильтр
N9.Enabled:=true;
end;
end;
//----------------------------------------------------------------------------//
//Нажатие на кнопку Создать
procedure Tredactor.newClick(Sender: TObject);
begin
//Если открыто больше 10 окон выводим сообщение
if col_form>=10 then MessageBox(redactor.Handle,'Невозможно открыть более 10 окон','Предупреждение',0)
else
begin
//Задание начального значения переменной
Undo:=false;
//Увеличение счетчика форм
col_form:=col_form+1;
//Увеличиваем счетчик активных форм
act_form:=act_form+1;
//Создание объекта Tpic
Form_pic[col_form]:=Tpic.Create(redactor);
//Присвоение его тэгу числа
Form_pic[col_form].Tag:=col_form;
//Показ этой формы
Form_pic[col_form].Show;
//Активация кнопки Изменение размера
N8.Enabled:=true;
//Активация кнопки Фильтр
N9.Enabled:=true;
//Активация кнопки Сохранить
save.Enabled:=true;
end;
end;
//----------------------------------------------------------------------------//
//Создание формы
procedure Tredactor.FormCreate(Sender: TObject);
begin
//Обнуление числа форм
col_form:=0;
//Установка активной формы в 1
act_form:=1;
//присвоение переменной цвет панели
drawcolor:=FColor.Color;
//присвоение переменной цвет панели
bcolor:=BcColor.Color;
//Задание начальных значений переменных толщины инструментов рисования
LW:=1;
BW:=1;
EW:=1;
RW:=1;
EllipW:=1;
AngleW:=1;
//Показ в метке позиции TrackBar1
Label4.Caption:=inttostr(TrackBar1.Position);
//Задание числа углов
Nangle:= SpinEdit1.Value;
//Создание буфера обмена
CopyBuf:= TBitmap.Create;
end;
//----------------------------------------------------------------------------//
//Нажатие на кнопку кисть
procedure Tredactor.BrushClick(Sender: TObject);
begin
//Задание позиции бегунка TrackBar1
TrackBar1.Position:=BW;
//Присвоение переменной значение TrackBar1
BW:= TrackBar1.Position;
//Деактивация SpinEdit1
SpinEdit1.Enabled:=false;
end;
//----------------------------------------------------------------------------//
//Нажатие на Линия
procedure Tredactor.LineClick(Sender: TObject);
begin
//Задание позиции бегунка TrackBar1
TrackBar1.Position:=LW;
//Присвоение переменной значение TrackBar1
LW:=TrackBar1.Position;
//Деактивация SpinEdit1
SpinEdit1.Enabled:=false;
end;
//----------------------------------------------------------------------------//
//Нажатие на Стерка
procedure Tredactor.EraserClick(Sender: TObject);
begin
//Задание позиции бегунка TrackBar1
TrackBar1.Position:=EW;
//Присвоение переменной значение TrackBar1
EW:=TrackBar1.Position;
//Деактивация SpinEdit1
SpinEdit1.Enabled:=false;
end;

//----------------------------------------------------------------------------//
//Нажатие на панель Цвет
procedure Tredactor.FColorClick(Sender: TObject);
begin
//Если завершен диалог выбора цвета
If ColorDialog1.Execute then
begin
//Присвоение переменной этого цвета
drawcolor:=ColorDialog1.Color;
//Присвоение панели этого цвета
redactor.FColor.Color:=drawcolor;
end;
//Деактивация SpinEdit1
SpinEdit1.Enabled:=false;
end;
//----------------------------------------------------------------------------//
//Нажатие на панель Фон
procedure Tredactor.BcColorClick(Sender: TObject);
begin
//Если завершен диалог выбора цвета
If ColorDialog1.Execute then
begin
//Присвоение переменной этого цвета
bcolor:=ColorDialog1.Color;
//Присвоение панели этого цвета
redactor.BcColor.Color:= bcolor;
end;
//Деактивация SpinEdit1
SpinEdit1.Enabled:=false;
end;
//----------------------------------------------------------------------------//
//Нажатие на Многоугольник
procedure Tredactor.AngleClick(Sender: TObject);
begin
//Активация SpinEdit1
SpinEdit1.Enabled:=True;
//Задание позиции бегунка TrackBar1
TrackBar1.Position:=AngleW;
//Присвоение переменной значение TrackBar1
AngleW:=TrackBar1.Position;
//Задание значения в SpinEdit1
SpinEdit1.Value:=Nangle;
//Задание числа углов
Nangle:= SpinEdit1.Value;
end;
//----------------------------------------------------------------------------//
//Процедура нажатия на Прямоугольник
procedure Tredactor.RectangleClick(Sender: TObject);
begin
//Деактивация SpinEdit1
SpinEdit1.Enabled:=false;
//Задание позиции бегунка TrackBar1
TrackBar1.Position:=RW;
//Присвоение переменной значение TrackBar1
RW:=TrackBar1.Position;
end;
//----------------------------------------------------------------------------//
//Процедура нажатия на Элипс
procedure Tredactor.EllipsClick(Sender: TObject);
begin
//Деактивация SpinEdit1
SpinEdit1.Enabled:=false;
//Задание позиции бегунка TrackBar1
TrackBar1.Position:= EllipW;
//Присвоение переменной значение TrackBar1
EllipW:=TrackBar1.Position;
end;
//----------------------------------------------------------------------------//
procedure Tredactor.FillClick(Sender: TObject);
begin
//Деактивация SpinEdit1
SpinEdit1.Enabled:=false;
end;
//----------------------------------------------------------------------------//
//Процедура изменения значени SpinEdit1
procedure Tredactor.SpinEdit1Change(Sender: TObject);
begin
//Считывание числа углов многоугольника
Nangle:= SpinEdit1.Value;
end;
//----------------------------------------------------------------------------//
//Процедура движения бегунка
procedure Tredactor.TrackBar1Change(Sender: TObject);
begin
//Проверка на то, какой инструмент выбран
//и выставлениее соответствующей толщины линии
if redactor.Line.Down then LW:= TrackBar1.Position else
if redactor.Brush.Down then BW:= TrackBar1.Position else
if redactor.Eraser.Down then EW:=TrackBar1.Position else
if redactor.Rectangle.Down then RW:=TrackBar1.Position else
if redactor.Ellips.Down then EllipW:=TrackBar1.Position else
if redactor.Angle.Down then AngleW:=TrackBar1.Position;
//Вывод в менку значения TrackBar1 (толщины)
Label4.Caption:=inttostr(TrackBar1.Position);
end;
//----------------------------------------------------------------------------//
//Открытие формы изменения размера
procedure Tredactor.N8Click(Sender: TObject);
begin
Form3.show;
end;
//----------------------------------------------------------------------------//
//Нажатие на кнопку Выделение
procedure Tredactor.SelectClick(Sender: TObject);
begin
SpinEdit1.Enabled:=false;
end;
//----------------------------------------------------------------------------//
//Нажатие на Справка
procedure Tredactor.N3Click(Sender: TObject);
begin
//Вызов справки
winhelp(redactor.Handle,'СПРАВКА.hlp',HELP_CONTEXT,1);
end;
//----------------------------------------------------------------------------//
//Нажатие на Фильтр
procedure Tredactor.N9Click(Sender: TObject);
begin
//Показ формы фильтра
Form4.show;
end;
end.
Соседние файлы в папке Галкин_Прошкин
  • #
    15.04.2015876 б3Project1.res
  • #
    15.04.2015341 б3Project1.~dpr
  • #
    15.04.201511.52 Кб4Unit1.dcu
  • #
    15.04.201551 б3Unit1.ddp
  • #
    15.04.2015150.85 Кб3Unit1.dfm
  • #
    15.04.201511.74 Кб3Unit1.pas
  • #
    15.04.201551 б3Unit1.~ddp
  • #
    15.04.2015150.85 Кб4Unit1.~dfm
  • #
    15.04.201511.73 Кб3Unit1.~pas
  • #
    15.04.201519.69 Кб3Unit2.dcu
  • #
    15.04.201551 б3Unit2.ddp