Главная страница
Навигация по странице:

  • Цель урока

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

  • Листинг подпрограммы

  • ттттт. Практическая работа Работа с интерфейсом среды программирования Delphi. Создание простого проекта. Запуск программ на выполнение


    Скачать 2.63 Mb.
    НазваниеПрактическая работа Работа с интерфейсом среды программирования Delphi. Создание простого проекта. Запуск программ на выполнение
    Анкорттттт
    Дата30.01.2022
    Размер2.63 Mb.
    Формат файлаdoc
    Имя файла0018f8f0-cdfb5c43.doc
    ТипПрактическая работа
    #346059
    страница7 из 16
    1   2   3   4   5   6   7   8   9   10   ...   16

    Практическая работа №8.Составление программ на обработку событий


    Цель урока: освоить составление программы на обработку событий.

    Задание.

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

    1. По щелчку мышью на кнопке кнопка либо останавливается, либо двигается.



    Рис. 1.

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

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

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

    2. Разместить на форме экземпляры компонентов: кнопку Button, таймер Timer. Кнопка включает и выключает таймер, а таймер двигает кнопку.

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

    Таблица 1.

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

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

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

    Действие

    Forml

    Properties

    Caption

    Установка имени формы "Двигающаяся кнопка"

    Timerl

    Properties

    Enabled

    Установить значение свойства Enabled = false

    Свойство Enabled определяет, включен или выключен таймер (по умолчанию, он включен).

    Interval

    Interval = 100

    Свойство Interval определяет интервал в миллисекундах между возникновением событий OnTimer (по умолчанию интервал равен 1 секунде).




    Events

    OnTimer

    Button1.Left := Button1.Left - 5; if Button1.Left < 10

    then Button1.Left := 100;

    Buttonl

    Properties

    Caption

    Установка имени кнопки "Сменить заголовок окна"

    Default

    Выбрать в раскрывающемся списке значение True

    Events

    OnClick

    Timer1.Enabled := not Timer1.Enabled;

    4. Сохраните проект, запустите и протестируйте его.

    Практическая работа №9.Разработка программ на обработку событий.


    Цель урока: своить составление программы на обработку событий.

    Задание

    Создать компьютерную версию игры-головоломки "Ханойские башни". Игровая доска содержит семь клеток, расположенных в ряд. На трех левых клетках стоят белые фишки, на трех правых - черные. Центральная клетка пуста. Задача заключается в том, чтобы, делая допустимые ходы, поменять фишки местами. Правила ходов такие.

    1. Белые фишки могут ходить только вправо, а черные - только влево.

    2. Ходить разрешается только на свободное поле.

    3. Разрешены перемещения на соседнее поле и "прыжок" через одну фишку.

    В роли фишек выступают кнопки с изображением, например, цветных треугольников, направленных так, чтобы они указывали допустимое направление ходов. Кнопки будут передвигаться по игровой доске, созданной при помощи панели.



    Рис. 1.

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

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

    2. Разместить на форме экземпляры компонентов: панель Panel, кнопка с изображением BitBtn.

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

    Таблица 1.

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

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

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

    Действие

    Form1

    Properties

    Caption

    Установка имени формы "Головоломка"

    Panel1

    (Вкладка Standard)

    Properties

    Height

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

    Width

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

    Caption

    Очистить значение

    BitBtn1

    (Вкладка Additional)

    Properties

    Height

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

    Width

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

    Left

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

    Top

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

    BitBtn2

    Properties

    Height

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

    Width

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

    Left

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

    Top

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

    BitBtn3

    Properties

    Height

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

    Width

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

    Left

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

    Top

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

    BitBtn4

    Properties

    Height

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

    Width

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

    Left

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

    Top

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

    BitBtn5

    Properties

    Height

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

    Width

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

    Left

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

    Top

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

    BitBtn6

    Properties

    Height

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










    Width

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










    Left

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










    Top

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




    4. Сохраните проект.

    5. Создать рисунки при помощи стандартной программы Paint. Задайте размеры рисунков 45x45 пикселов (в режиме увеличения).

    6. Создать две картинки с именами Left.bmp и Right.bmp, поместить их в папку проекта. Рисунок с именем Left.bmp предназначен для левых кнопок, рисунок с именем Right.bmp - для правых кнопок.

    7. Назначить рисунки кнопкам.

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

    BitBtnl, BitBtn2, I Properties Caption Очистить значение

    BitBtn3, BitBtn4, BitBtn5, BitBtn6




    Glyph (Значок)

    Щелкнуть на кнопке построителя. Открыть окно Picture Editor. Щелкните на кнопке Load. В диалоговом окне выберете файл с изображением кнопки и щелкните на кнопке Открыть. Щелкнуть на кнопке Ok, и выбранная картинка появится на кнопке.

    8. Необходимо хранить два числа: номер клетки, в которой находится кнопка; признак "цвета" фишки", т.е. в какую сторону может ходить кнопка.

    9. Номер клетки умножить на два. Если фишка черная, прибавить к числу единицу.

    10. Задать свойство Tag (Тег) для всех кнопок.

    Таблица 2.

    Значение свойства Tag

    Комментарий




    Первая клетка, белая фишка




    Вторая клетка, белая фишка




    Третья клетка, белая фишка




    Четвертая клетка, черная фишка




    Пятая клетка, черная фишка




    Шестая клетка, черная фишка

    11. Создать дополнительную переменную для пустой клетки

    var n: Integer = 4;

    12. Создать глобальную переменную

    win : Integer = 24; {все фишки в сумме должны переместиться на 24 клетки}

    13. Программируем выполнение хода фишки.

    Таблица 3.

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

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

    Вмя события

    Действие

    BitBtn1

    Events

    OnClick

    В процедуру BitBtn1Click передается параметр -объект Sender. Он представляет именно тот объект, который вызвал событие, и может дать доступ к его свойствам. Надо специально указать, что объект Sender в данном случае следует считать кнопкой. Чтобы обратиться к свойству Tag данного объекта, записывают (Sender as TBitBtn).Tag.

    14. Сохраните проект, запустите и протестируйте его.

    Листинг подпрограммы

    procedure TForml.BitBtnlClick (Sender: TObject);

    var i, c, k, ak: Integer;

    begin

    with Sender as TBitBtn do {объект Sender используется многократно}

    begin {свойство Tag указывает, какая именно кнопка нажата}

    i := Tag div 2; {переменная i хранит номер клетки, где находится кнопка}

    с := Tag mod 2; {переменная c определяет цвет фишки}

    k := n - i; {k - величина перемещения}

    ak := Abs (k); {ak - длина хода}

    if ak < 3 then {проверка допустимости хода}

    if ((c = 0) and (k > 0)) or ((c = l ) and (k < 0)) {белые фишки могут ходить только вправо, черные - влево}

    then { делаем ход}

    begin

    Tag := Tag + 2 * k; Left := Left + 56 * k;

    win := win - ak; {при каждом ходе уменьшается значение переменой win на длину хода} n := i; {пустая клетка находиться там, где раньше была фишка} end;

    end;

    if win = 0 then { проверка завершения решения}

    begin

    Caption := 'Победа!'; Panell.Color := clFuchsia;

    Panell.Enabled := False; {отключаем панель, и одновременно все расположенные на ней объекты}

    end;

    end;

    1   2   3   4   5   6   7   8   9   10   ...   16


    написать администратору сайта