Цель работы - создать программу, выполняющую следующие действия:

1. После запуска программы в окне изображается две полосы прокрутки. Вертикальная полоса будет управлять движением по вертикали, горизонтальная - по горизонтали.

2. Наводя указатель мыши на одну из двух фигур, можно выбирать, какая из этих фигур связана с полосами прокрутки.

Практическая работа № 13 Применение полос прокрутки

Рис. 33.

3. Требуются дополнительные объекты, с помощью которых ограничивается область движения фигур в окне.

4. Если полоса прокрутки активная, то она должна реагировать на клавиши ВВЕХ, ВНИЗ, ВЛЕВО, ВПРАВО, PAGE UP, PAGE DOWN.

5. Для выхода из программы необходимо щелкнуть мышью на закрывающей кнопке в строке заголовка.

Описание плана разработки программы

1. Открыть новый проект.

2. Разместить на форме экземпляры компонентов: панель Panel, полоса прокрутки ScrollBar, фигура Shape.

3. Ввести дополнительную переменную логического типа num. Если она принимает значение True (Да), то текущей считается первая фигура. Значению False (Нет) соответствует вторая фигура. Эта переменная должна быть доступна во всех процедурах.

4. Выполнить следующие действия:

Таблица 13.

Выделенный объект

Вкладка окна Object Inspector

Имя свойства/ имя события

Действие

Forml

Properties

Caption

Установка имени формы "Перемещение фигур"

Panel

(Вкладка Standard)

Properties

Height

Присвоить значение 161

Width

Присвоить значение 161

Caption

Оставить значение свойства пустым

ScrollBarl

(Вкладка Standard)

Properties

Min

Присвоить значение 5

Max

Присвоить значение 145

Position

Присвоить значение 76

SmallChange

Присвоить значение 2

Продолжение таблицы 13.

Выделенный объект

Вкладка окна Object Inspector

Имя свойства/ имя события

Действие

LargeChange (Большое изменение)

Присвоить значение 20

Events

OnChange

if num then Shapel.Left := ScrollBarl.Position else Shape2.Left := ScrollBarl.Position

ScrollBar2

(Вкладка Standard)

Properties

Kind

Выбрать значение sbVertical. Горизонтальная полоса прокрутки станет вертикальной.

Min

Присвоить значение 5

Max

Присвоить значение 145

Position

Присвоить значение 76

SmallChange (Малое изменение)

Присвоить значение 2

LargeChange

Присвоить значение 20

Events

OnChange

if num then Shapel.Top := ScrollBar2.Position else Shape2.Top := ScrollBar2.Position

Shapel

(Вкладка Additional)

Properties

Height

Присвоить значение 11

Width

Присвоить значение 11

Left

Присвоить значение 76

Top

Присвоить значение 76

Shape (Форма)

Выбрать значение stCircle (Круг)

Brush (Кисть)

Выбрать для подсвойства Color (Цвет кисти) значение clAqua (голубой цвет)

Events

OnMouseMove

(При движении мыши)

Shape1.Brush.Color := clAgua;

Shape1.Brush.Color :=

clFuchsia;
Num := True;

ScrollBar1.Position:=

Shape1.Left;

ScrollBar2.Position:=

Shape1.Top;

Shape2

(Вкладка Additional)

Properties Events

Height

Присвоить значение 11

Width

Присвоить значение 11

Left

Присвоить значение 76

Top

Присвоить значение 76

Shape

Выбрать значение stSquare (Квадрат)

Brush

OnMouseMove

Выбрать для подсвойства Color (Цвет кисти) значение clFuchsia (фиолетовый цвет) Аналогично Shape2

5. Сохраните проект, запустите и протестируйте его. Листинг подпрограммы

procedure TForml.ScrollBarlChange (Sender: TObject); begin if num then Shapel.Left := ScrollBarl.Position else Shape2.Left := ScrollBarl.Position

end;

procedure TForml.ScrollBar2Change (Sender: TObject); begin if num then Shapel.Top := ScrollBar2.Position else Shape2.Top := ScrollBar2.Position

end;

procedure TForml.ShapelMouseMove

(Sender: TObject;
Shift: TShiftState;
X, Y: Integer);
begin
Shapel.Brush.Color := clAgua;
Shapel.Brush.Color := clFuchsia;
Num := True;
ScrollBarl.Position:= Shapel.Left;
ScrollBar2.Position:= Shapel.Top;
end;

procedure TForml. Shape2MouseMove

(Sender: TObject;
Shift: TShiftState;
X, Y: Integer);
begin
Shape2.Brush.Color := clFuchsia;
Shape2.Brush.Color := clAgua;
Num := False;
ScrollBarl.Position:= Shape2.Left;
ScrollBar2.Position: = Shape2.Top;
end;
procedure TForml. FormCreate (Sender: TObject);
begin
num := True;
end;

Практическая работа № 12 "Таблица умножения" || Оглавление || Практическая работа № 14 "Светофор"


Практикум по Delphi для решения прикладных задач



Новости за месяц

  • Сентябрь
    2021
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс