if Savedialog1.Execute = true then
begin
image1.Picture.SaveToFile(Savedialog1.filename+'.bmp');
end;
Кликнем на пункт "Загрузить" и напишем:
if Opendialog1.Execute = true then
begin
image1.Picture.LoadFromFile(Opendialog1.filename);
end;
Кликнем на пункт "Печать" и напишем:
if Printdialog1.Execute = true then
begin
Form1.Print;
end;
Запрограммируйте закрытие формы по выбору пункта «Выход»
Свойству Cursor компонента Image1 присвоим значение crCross. Теперь в Object Ispector выберем компонент Image1 -> Events -> OnMouseDown и напишем:
press:=true;
tx:=x;
ty:=y;
image1.Canvas.MoveTo(x,y);
image1.Canvas.Pixels[tx,ty]:=color;
Переменные tx, ty, color должны быть описаны как integer, а press как boolean в общем Var'е.
Теперь в Object Ispector веберем компонент Image1 -> Events -> OnMouseUp и напишем:
press:=false;
Теперь в Object Ispector веберем компонент Image1 -> Events -> OnMouseMove и напишем:
if press=true then begin
image1.Canvas.Pen.Color:=color;
image1.Canvas.Brush.Create;
image1.Canvas.LineTo(tx,ty);
tx:=x;
ty:=y;
end;
Теперь организуем выбор цвета. В Form1 OnCreate объявляем две переменные типа integer и там же пишем:
image1.Canvas.Create;
color:=clblack;
for i:=0 to image2.width do
begin
for j:=0 to image2.Height do
begin
image2.Canvas.Pixels[i,j]:=color;
end;
end;
Напоминаем, что по умолчанию в Delphi переменным типа integer присваиваются значения 0. Этим текстом мы на компоненте Image2 прорисовываем текущий цвет. Перейдем к выбору цвета. Для этого два раза кликнем на Button1 и впишем сей текст:
if Colordialog1.Execute = true then
begin
color:=ColorDialog1.Color;
for i:=0 to image2.width do
begin
for j:=0 to image2.Height do
begin
image2.Canvas.Pixels[i,j]:=color;
end;
end;
end;
Осталась малость - добавление текста на форму. Для этого создадим новую форму - Form (2), на ней создадим три компонента Edit (1),(2),(3) и три компонента Label (1),(2),(3). Edit1 - собственно сам текст, Edit2 - координата по оси X, Edit3 - координата по оси Y. Три компонента Label (1),(2),(3) - соответственно подписи к компонентам Edit (1),(2),(3). Добавляем компонент Button1. Два раза на него кликнем и пишем такой текст:
if (edit1.text<>'')and(edit2.text<>'')and(edit3.text<>'') then
begin
form1.image1.canvas.textout(strtoint(edit2.text),strtoint(edit3.text),edit1.text);
end;
Снова возвращаемся на первую форму. Два раза кликнем на компонент Label1. Пишем:
form2.showmodal;
Свойству Cursor компонента Label1 присваиваем значение crHandPoint.
КОНТРОЛЬНЫЕ ЗАДАНИЯ
Самостоятельно оформите вид интерфейса программы, удобно расположив все элементы
Запрограммируйте код, чтобы добавляемый текст имел прозрачный фон
Замените на второй форме два поля для ввода чисел на более удобные для этих целей компоненты
Попробуйте запрограммировать появление второй формы так, чтобы она как можно меньше мешала просмотру рисунка на первой форме, или автоматически сдвигалась в сторону при рисовании на первой форме
Добавьте свои инструменты для рисования
ЛИТЕРАТУРА
Delphi 5: учебный курс, С. Бобровский, Питер 2002 г.
Аладьев В.З., Хунт Ю.Я., Шишаков М.Л., Основы информатики. Учебное пособие, М., Филин, 1998, 496с.
Информатика. Учебник под ред. Проф. Н.В. Макаровой, Финансы и статистика, 2001, 768с.
Балафанов Е.К., Бурибаев Б., Даулеткулов А.. 30 уроков по информатике, Алматы, Джагамбек, 1999г, 442с (на русском и казахском языках)
Фигурнов В.З. IBM PC для пользователя, 7 изд., Москва, ИНФРА, 1998, 328с.
Каймин В.А., Питеркин В.М., Уртминцев А.Г. Информатика. Учебное пособие, 1998, 208с.
Кенин А.М., Печенкин Н. Окно в мир компьютеров, Екатеринбург, Деловая книга, 1996
Лабораторная работа № 8
Функциональные типы
ЦЕЛЬ РАБОТЫ
Цель лабораторной работы – освоение студентами основных понятий программирования, интерфейса среды программирования методов управления свойствами компонент.
ВЫЧИСЛЕНИЕ ИНТЕГРАЛА МЕТОДОМ ЧЕБЫШЕВА
Откройте среду программирования Delphi
Сконструируйте показанный на рисунке интерфейс
Опишите новый тип перед описанием класса формы
Достарыңызбен бөлісу: |