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

  • Листинг

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

  • Контрольные вопросы.

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


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

    Практическая работа №15.Составление программ, используя мультимедийные возможности Delphi.


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

    Начало игры осуществляется по нажатию на кнопку Ок.

    Свойство WordWrap компонента Label - признак того, что слова, которые не помещаются в текущей строке, автоматически переносятся на следующую строку (значение свойства AutoSize должно быть False).

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

    unit Unit1; interface uses

    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;

    type

    TForm1 = class(TForm) Timer: TTimer; Label1: TLabel; Button1: TButton;

    procedure TimerTimer(Sender: TObject); procedure FormCreate(Sender: TObject);

    procedure FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

    procedure Button1Click(Sender: TObject); private

    { Private declarations } public



    Рис. 1.

    { Public declarations }

    { объявление процедур помещено сюда, чтобы процедуры имели прямой доступ к форме, на которой они рисуют}

    procedure PaintFace (x,y: integer); {рисует рожицу} procedure EraseFace(x,y: integer); {стирает рожицу} end;

    var

    Form1: TForm1;

    fx,fy: integer; { координаты рожицы}

    n: integer; { количество щелчков кнопкой мыши}

    p: integer; { количество попаданий}

    implementation

    { рисует рожицу}

    procedure TForm1.PaintFace(x,y: integer); begin

    Canvas.Pen.Color := clBlack; { цвет линий} Canvas.Brush.Color := clRed; { цвет закраски} { рисуем рожицу}

    Canvas.Ellipse(x,y,x+30,Y+30); { лицо} Canvas.Ellipse(x+9,y+10,x+11,y+13); { левый глаз} Canvas.Ellipse(x+19,y+10,x+21,y+13); { правый глаз} Canvas.Arc(x+4,y+4,x+26,y+26,x,y+20,x+30,y+20); {улыбка} end;

    { стирает рожицу}

    procedure TForm1.EraseFace(x,y: integer); begin

    { зададим цвет границы и цвет закраски, совпадающий с цветом формы.} { По умолчанию цвет формы - clBtnFace } Canvas.Pen.Color := clBtnFace; { цвет окружности} Canvas.Brush.Color := clBtnFace; { цвет закраски} Canvas.Ellipse(x,y,x+30,y+30); end;

    {$R *.dfm}

    procedure TForm1.TimerTimer(Sender: TObject); begin

    EraseFace(fx,fy); { новое положение рожицы}

    fx:= Random(ClientWidth-30); { 30 - это диаметр рожицы} fy:= Random(ClientHeight-30); PaintFace(fx,fy); end;

    procedure TForm1.FormCreate(Sender: TObject);

    begin

    { исходное положение рожицы}

    fx:=100; fy:=100;

    Randomize; { инициализация генератора случайных чисел} end;

    procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;

    Shift: TShiftState; X, Y: Integer);

    begin

    inc(n); { кол-во щелчков}

    if (x > fx) and (x < fx+30) and (y > fy) and (y < fy+30) then begin

    { щелчок по рожице}

    inc(p);

    end; if n = 10 then begin

    { игра закончена}

    Timer.Enabled := False; { остановить таймер} ShowMessage('Щелчков: 10. Попаданий: ' + IntToStr(p)+'.'); EraseFace(fx,fy); Label1.Visible := True; Button1.Visible := True; { теперь кнопка и сообщение снова видны} end; end;

    procedure TForm1.Button1Click(Sender: TObject); begin

    Label1.Visible := False; { скрыть сообщение} Button1.Visible := False; { скрыть кнопку} Timer.Enabled := True; { пуск таймера} end;

    end.

    Практическая работа №16.Составление программ, используя мультимедийные возможности Delphi.


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

    1. После запуска программы в окне изображается рисунок, выбранный первым переключателем из раскрывающегося списка.

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

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

    Р ис. 1.

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

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

    2. Разместить на форме экземпляры компонентов: рамка GroupBox, переключатель RadioBatton, раскрывающийся список ComboBox.

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

    Таблица 1

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

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

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

    Действие

    Form1

    Properties

    Caption

    Установка имени формы "Интерактивный электронный альбом"

    Events

    OnCreate

    RadioButtonlClick(RadioButtonl);

    GroupBox1

    (Вкладка Standard)

    Properties

    Caption

    Введите название "Части света"

    RadioBatton1

    (Вкладка Standard)

    Properties

    Caption

    Введите название "Европа"

    Checked (Включен)

    Задайте значение True

    Tag

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

    Events

    Onclick

    В процедуре описать локальную переменную i.

    Описать действия переключателей, используя цикл с параметром i от 0 до 5.

    Для создания еще пяти переключателей можно использовать метод копирования через буфер обмена. Пока объект RadioBattonl остается выделенным, нажмите комбинацию клавиш CTRL+C. Произойдет его копирование в буфер обмена. Теперь нажмите комбинацию CTRL+V - это команда вставки объекта из буфера обмена и Delphi автоматически изменит имя объекта - новый объект получит имя RadioBatton2.

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

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

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

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

    Действие

    RadioBatton2

    Properties

    Caption

    Введите название "Азия"

    Tag

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

    RadioBatton3

    Properties

    Caption

    Введите название "Африка"

    Tag

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

    RadioBatton4

    Properties

    Caption

    Введите название "Северная Америка"

    Tag

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

    RadioBatton5

    Properties

    Caption

    Введите название "Южная Америка"

    Tag

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

    RadioBatton6

    Properties

    Caption

    Введите название "Австралия"

    Tag

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

    Выделите все шесть переключателей. Дайте команду Edit Align (Правка Выравнивание). Откроется окно Alignment (выравнивание). Установить слева переключатель Left Sides (Левые края), а справа Space Equally (Равные промежутки). Щелкните на кнопке OK.

    GroupBox2

    (Вкладка Standard)

    Properties

    Caption

    Введите название "Города"

    ComboBox1

    (Вкладка Standard)

    Properties

    Style

    Выбрать значение csDropDownList (Раскрывающийся список)

    Events

    OnChange

    Imagel.Picture.LoadFromFile

    (ListBox2.Items [ComBoxl.Tag + ComboBoxl.Itemlndex]);

    Image1

    (Вкладка Additional)

    Поместить объект на рамку

    ListBox1

    (Вкладка Standard)

    Properties

    Visible

    Задайте значение False

    Items (Пункты)

    Щелкнуть на кнопке построителя. Введите в список тридцать названий городов - по пять для каждой части света.

    ListBox2 I Properties

    Visible Задайте значение False

    (Вкладка Standard)

    Items

    Щелкнуть на кнопке построителя. Введите в список тридцать имен файлов, содержащих иллюстрации.

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

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

    procedure TForm1. RadioButton1Click (Sender: TObject);

    var i: Integer;

    begin

    ComboBox1.Clear;

    ComboBox1.Tag := (Sender as TRadioButton).Tag; for i := 0 to 5 do

    ComboBox1.Items.Add (ListBox1.Items [ComboBox1.Tag + i]);

    ComboBox1.ItemIndex := 0;

    Imagel.Picture.LoadFromFile (ListBox2.Items [ComboBoxl.Tag]);

    end;

    procedure TForml.FormCreate(Sender: TObject); begin

    RadioButtonlClick(RadioButtonl); end;

    procedure TForml.ComboBoxlChange (Sender: TObject); begin

    Imagel.Picture.LoadFromFile (ListBox2.Items [ComboBoxl.Tag + ComboBoxl.Itemlndex]); end;
    Контрольные вопросы.

    1. Какие окна присутствуют по умолчании на экране в момент начала работы над новым проектом в Delphi и каковы их функции?

    2. Что такое Properties и Events в окне инспектора объектов?

    3. В чем разница между свойствами Caption и Name?

    4. Что означают значок «+» перед названием свойства в окне инспектора объектов и кнопка с многоточием в строке свойства?

    5. Какие файлы создает Delphi при работе с проектом? Каково их назначение? Где они сохраняются?



    1   ...   8   9   10   11   12   13   14   15   16


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