- •Сборник практических работ
- •Практическая работа № 1 Управляющие структуры Delphi. Программирование линейных алгоритмов.
- •Усвоить применение компонентов Label, Edit, Button и BitBtn.
- •Получить практические навыки программирования линейных алгоритмов в Delphi.
- •Практическая работа № 2 Управляющие структуры Delphi. Программирование ветвящихся алгоритмов. Инструкция If
- •Изучить структуру простого проекта на языке Delphi.
- •Усвоить применение инструкции if.
- •Практическая работа № 3 Реализация ветвящихся алгоритмов для решения прикладных задач
- •Получить практические навыки работы с ветвящимися алгоритмами в Delphi.
- •Практическая работа № 4 Использование визуальных компонентов Delphi для организации структуры ветвления:
- •Получить практические навыки работы с ветвящимися алгоритмами в Delphi.
- •Усвоить применение компонента RadioButton.
- •Усвоить применение компонента RadioGroup.
- •Группа переключателей RadioGroup
- •0:MessageDlg('Внимание! Не выбран ни один цвет!',mtInformation,[mbOk],0);
- •Практическая работа № 5 Использование визуальных компонентов Delphi для работы со списками –
- •Получить практические навыки работы с ветвящимися алгоритмами в Delphi.
- •Усвоить применение компонента ListBox.
- •Усвоить применение компонента ComboBox.
- •Практическая работа № 6 Использование циклических структур в Delphi
- •Получить практические навыки работы с циклическими алгоритмами в Delphi.
- •Закрепить практические навыки применения компонентов ListBox, ComboBox.
- •Закрепить практические навыки применения компонентов RadioButton, RadioGroup.
- •Формат записи оператора Repeat…until:
- •Практическая работа № 7 Разработка простейшего приложения типа «Калькулятор»
- •Закрепить практические навыки применения компонентов страницы Standart.
- •Закрепить практические навыки написания обработчиков простейших событий.
- •Практическая работа № 8 Разработка приложения для обработки массива
- •Освоить работу с массивами.
- •Усвоить применение компонента StringGrid.
- •Практическая работа № 9 Разработка простейшего графического редактора
- •Порядок выполнения
- •Практическая работа № 10 Разработка приложений с использованием компонентов Shape и Image
- •Порядок выполнения
Порядок выполнения
Р азместите на форме компонент PaintBox, который находится на странице System палитры компонентов:
Совет: компонент PaintBox не может показывать пользователю свои границы. Поэтому попробуйте поместить его внутрь группирующей панели и выровняйте его по границе этой панели – у Вас появится рамка вокруг окна для рисования. Чтобы это выполнить, перед помещением на форму компонента PaintBox, поместите туда вначале компонент Panel со стандартной страницы палитры компонент, а уже затем, на компонент Panel поместите компонент PaintBox и установите для него свойство Align (выравнивание), например, как alTop.
Для возможности закрытия вашей программы поместите на форму графическую кнопку и установите для нее соответствующие параметры (Close).
Для компонента PaintBox создайте следующие обработчики событий:
Событие |
Обработчик |
OnMouseDown |
procedure TForm1.PaintBox1MouseDown(Sender: TObject; Button: MouseButton; Shift: TShiftState; X, Y: Integer); begin isDown:=true; Form1.PaintBox1.Canvas.MoveTo(X,Y); form1.Panel1.Tag:=X; form1.Tag:=Y; end; |
OnMouseMove |
procedure TForm1.PaintBox1MouseMove(Sender: TObject; Shift: ShiftState; X, Y: Integer); begin if isDown then form1.PaintBox1.Canvas.LineTo(x,y); end; |
OnMouseUp |
procedure TForm1.PaintBox1MouseUp(Sender: TObject; Button: MouseButton; Shift: TShiftState; X, Y: Integer); begin isDown:=false; end; |
Переменная isDown должна быть описана как глобальная для всего модуля в интерфейсной части в разделе var следующим образом: isDown:boolean;
Сохраните ваш проект и запустите его на исполнение. Ознакомьтесь с работой программы.
Закройте вашу программу и вернитесь в визуальную среду программирования.
Дополните вашу форму так, как показано на рисунке:
Для кнопки “Очистить область рисования” задайте обработчик события Onclick и впишите в него следующий код:
PaintBox1.Refresh;
Для выбора цвета пера (компонент GroupBox1) задайте обработчик события OnExit и впишите в него следующий код:
if form1.RadioButton1.Checked then
form1.PaintBox1.Canvas.Pen.Color:=clRed;
if form1.RadioButton2.Checked then
form1.PaintBox1.Canvas.Pen.Color:=clGreen;
if form1.RadioButton3.Checked then
form1.PaintBox1.Canvas.Pen.Color:=clnavy;
Для выбора цвета кисти (компонент GroupBox2) задайте обработчик события OnExit и впишите в него следующий код:
if form1.RadioButton4.Checked then
form1.PaintBox1.Canvas.Brush.Color:=clRed;
if form1.RadioButton5.Checked then
form1.PaintBox1.Canvas.Brush.Color:=clGreen;
if form1.RadioButton6.Checked then
form1.PaintBox1.Canvas.Brush.Color:=clNavy;
Для кнопки “Нарисовать” задайте обработчик события OnClick следующего вида:
procedure TForm1.Button2Click(Sender: TObject);
var xn,yn,xt,yt,xprav,yprav,xlev,ylev:integer;
begin
form1.PaintBox1.Canvas.Pen.Width:=2; {Установка толщины пера в пикселях}
//
//Прямая
//
if form1.RadioButton7.Checked then
begin
//координаты начала прямой:
xn:=0;
yn:=0;
// Координаты конца прямой:
xt:=form1.PaintBox1.Width;
yt:=form1.PaintBox1.Height;
//Установка пера в точку начало рисования
form1.PaintBox1.Canvas.MoveTo(xn,yn);
//Отрисовка линии от установленного положения до конечного
form1.PaintBox1.Canvas.LineTo(xt,yt);
end;
//
//Прямоугольник
//
if form1.RadioButton8.Checked then
begin
//Координаты правого нижнего угла:
xprav:=round(form1.PaintBox1.Width/2);
yprav:=form1.PaintBox1.Height;
//координаты левого верхнего угла:
xlev:=0;
ylev:=round(form1.PaintBox1.Height/2);
//Отрисовка:
form1.PaintBox1.Canvas.Rectangle(xlev,ylev,xprav,yprav);
end;
end;
Сохраните ваш проект и запустите его на исполнение. Ознакомьтесь с работой программы.
Содержание отчета
Постановка задачи
Тексты процедур – обработчиков событий, разработанных в приложении Delphi
Контрольные вопросы
С помощью какого метода Canvas можно установить перо в заданную точку?
С помощью какого метода Canvas можно провести линию от текущего положения пера до заданной точки?
Как задать толщину пера?
Как задать цвет пера, кисти?
Как поставить точку определенного цвета на холсте?
Литература
В.Попов. Паскаль и Дельфи.— СПб.: Питер, 2003.
Фаронов В.В. Система программирования Delphi. – СПб.: БХВ-Петербург, 2003.