Урок 8. Создание приложений

Цель урока: изучить создание приложения “Графический редактор” в среде разработки PascalABC.NET.



Задания по теме урока

Задание 1. Создание приложения «Графический редактор»

Создать и сохранить проект «Графический редактор»

  • Разместить на форму
    •  рабочую  область для рисования (из группы «стандартные элементы управления») — PictureBox; компоненты, отображающие выбранный цвет для рисования и цвет фона (из группы «контейнеры») — Panel1, Panel2; компоненты для подписи кнопок (из группы «стандартные элементы управления») Lable1 и Lable2;Переименовать свойство «текст» Lable1 и Lable2 на имя Цвет1 и Цвет 2;компонент выбора цвета (из группы «диалоговые окна») — ColorDialog1;кнопки для смены цвета (из группы «стандартные элементы управления») button1 и button2 ;переименовать свойство «текст» button1 на (Сменить цвет1) и button2 на (Сменить цвет2) ;компонент выбора толщины линии (из группы «стандартные элементы управления») — numericUpDown1;компонент главное меню (из группы «меню и панели инструментов») — menuStrip1;
    • компоненты для работы с файлами (из группы «диалоговые окна»)  —  OpenFileDialog1, SaveFileDialog1;
  • Установить значение свойства BackColor у компонентов Panel1 и Panel2 Black и White соответственно.
  • У свойств Value и Minimum для компонента numericUpDown1 установить значение 1.
  • Создать структуру меню для menuStrip1;

Написать обработчики событий для компонентов:

Описание глобальных переменных
implementation
var gr: Graphics; 
    bm: Bitmap; 
    p_c: Pen;
    s_b: SolidBrush; 
    c_f, c_b: Color; 
    w: decimal;
    x1, y1, x2, y2: integer; m_d : boolean;
    F_N :string;

Обработчик событий Load формы
procedure Form1.Form1_Load(sender: Object; e: EventArgs);
begin
bm := new Bitmap(pictureBox1.Width,pictureBox1.Height); pictureBox1.Image := (Image)(bm);
gr := Graphics.FromImage(pictureBox1.Image); gr.Clear(Color.White);
  gr := pictureBox1.CreateGraphics; 
  c_f := Color.Black;
  p_c := new Pen(c_f, 1);
  c_b := Color.White;
  s_b := new SolidBrush(c_b);
end;

Обработчик событий numericUpDown1
procedure Form1.numericUpDown1_ValueChanged(sender: Object; e: EventArgs);
begin
  p_c.Dispose;
  w := numericUpDown1.Value;
  p_c := new Pen(c_f, (integer)(w));
end;

Обработчик событий кнопки Сменить цвет 1
procedure Form1.button1_Click(sender: Object; e: EventArgs);
begin
  colorDialog1.ShowDialog();
  c_f:=colorDialog1.color;
  w:=numericUpDown1.Value;
  p_c.Dispose;
  p_c:=new Pen(c_f, (integer) (w));
  panel1.BackColor:=c_f;
end;

Обработчик событий кнопки Сменить цвет 2
procedure Form1.button2_Click(sender: Object; e: EventArgs);
begin
  colorDialog1.ShowDialog(); 
  c_b := colorDialog1.color; s_b.Dispose;
  s_b := new SolidBrush(c_b);
  panel2.BackColor := c_b;
end;


Обработчик событий pictureBox1 событие MouseDown
procedure Form1.pictureBox1_MouseDown(sender: Object; e: MouseEventArgs);
begin
  m_d := true;
  x1 := e.x; y1 := e.y;
end;

Обработчик событий pictureBox1 событие MouseUp
procedure Form1.pictureBox1_MouseUp(sender: Object; e: MouseEventArgs);
begin
  m_d:=false;
end;

Обработчик событий pictureBox1 событие MouseMove
procedure Form1.pictureBox1_MouseMove(sender: Object; e: MouseEventArgs);
begin
  if m_d then
  begin
    gr.DrawLine(p_c,x1,y1,e.X,e.Y);
  end;
  //запомнить координаты для рисования следующего отрезка
  x1:=e.X; y1:=e.Y;
end;


Обработчик событий Файл - Новый 
procedure Form1.toolStripMenuItem4_Click(sender: Object; e: EventArgs);
begin
  //Файл - Новый
  gr:=pictureBox1.CreateGraphics;
  gr.Clear(c_b);
end;

Обработчик событий Файл - Открыть 
procedure Form1.toolStripMenuItem5_Click(sender: Object; e: EventArgs);
begin
  //Файл - Открыть
  openFileDialog1.ShowDialog();
  F_N:=openFileDialog1.FileName;
  Text:='Графический редактор '+F_N;
  PictureBox1.Load(F_N);
end;


Обработчик событий Файл - Сохранить 
procedure Form1.toolStripMenuItem6_Click(sender: Object; e: EventArgs);
begin
  //Файл - Сохранить
  saveFileDialog1.ShowDialog();
  F_N:=saveFileDialog1.FileName;
  PictureBox1.Image.Save(F_N);
  Text:='Графический редактор '+F_N;
end;

Обработчик событий Файл - Выход 
procedure Form1.toolStripMenuItem8_Click(sender: Object; e: EventArgs);
begin
  //Файл - Выход
  close;
end;

Обработчик событий Цвет - Цвет линии
procedure Form1.toolStripMenuItem9_Click(sender: Object; e: EventArgs);
begin
  //Цвет - Цвет линии
  ColorDialog1.ShowDialog();
  c_f:=colorDialog1.Color;
  w:=numericUpDown1.Value;
  p_c.Dispose;
  p_c:=new Pen(c_f,(integer) (w));
  panel1.BackColor:=c_f;
end;

Обработчик событий Цвет - Заливки
procedure Form1.toolStripMenuItem10_Click(sender: Object; e: EventArgs);
begin
  //Цвет - Цвет заливки
  ColorDialog1.ShowDialog();
  c_b:=colorDialog1.Color;
  s_b.Dispose;
  s_b:=new SolidBrush (c_b);
  panel2.BackColor:=c_b;
end;

Сохранить изменения и протестировать приложение.


Домашнее задание

§ 5 учебного пособия, ответить на вопросы после параграфа.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *