Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

Тема- Створення навчальної програми у середовищі Delphi

Работа добавлена на сайт samzan.net: 2016-03-30

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 22.5.2024

Практична робота 28

Тема: Створення навчальної програми у середовищі Delphi.

Мета: Навчитися користуватися основними елементами інтерфейсу середовища програмування Delphi для створення, редагування, налагодження та виконання навчальних програм (проектів).

Хід роботи

1. Запускаю середовище візуального програмування Delphi.

Клацаю на піктограмі Delphi (1 раз ЛКМ) або за допомогою каскадного меню:

Start  Programs  Borland Delphi 7 → Delphi 7.

2. Змінюю заголовок форми з „Form1” на „Англійська мова – тестування”.

Властивість Caption форми (Form1).

3. Відмовляюсь від усіх системних кнопок форми.

Для цього задаю значення False в усіх позиціях властивості BorderIcons: biSystemMenu, biMinimize, biMaximize, biHelp.

4. Розташовую на формі наступні об’єкти: Label1, Label2, Label3, Label4, Timer1, Timer2, MediaPlayer1, Gauge1, SpinEdit1, BitBtn1, BitBtn2, Shape1, Shape2, Shape3, Image1, Image2, Image3 та задаю їх властивості.

Для цього використовую відповідні піктограми (Label, Timer, MediaPlayer, Gauge, BitBtn, SpinEdit, Shape, Image) із сторінок Standard, Additional, System, Samples палітри компонентів Delphi. Задаю наступні значення властивостей цих об’єктів: – компонент Timer1: Interval – 500; – компонент Timer2: Interval – 100; – компонент MediaPlayer1: Visible – False; – компонент Gauge1: BackColor – clInfoBk, Color – clBtnFace, Font – MS Sans Serif Bold 14 Yellow, ForeColor – clGreen, Kind – gkHorizontalBar, MaxValue – 100, MinValue – 0, Progress – 100; – компонент SpinEdit1: EditorEnabled – False, MaxValue – 10, MinValue – 1, Value – 5; – компонент BitBtn1: Glyph – С: \ Program Files \ Borland \ Delphi \ Images \ Buttons \ *.bmp, Caption – „Готово”; – компонент BitBtn2: Glyph – С: \ Program Files \ Borland \ Delphi \ Images \ Buttons \ *.bmp, Caption – „Вихід”; – компоненти Shape1, Shape2, Shape3: Brush – Color – clInfoBk, Shape – stRoundRect; – компоненти Image1, Image2, Image3: Stretch – True; – компоненти Label2, Label3, Label4: Font – Color – Olive, Font – Size – 16; – компонент Label1: Caption – „Обов’язково натисніть на кнопку Готово після розміщення малюнків !!!”, Font – Color – Red, Font – Size – 10.

5. Запрограмовую блимання повідомлення „Обов’язково натисніть на кнопку Готово після розміщення малюнків !!!”.

Двічі клацаю на першому таймері (Timer1) і запрограмовую блимання повідомлення так:

procedure TForm1.Timer1Timer(Sender: TObject);

begin

  if Label1.Visible=True then Label1.Visible:=False else Label1.Visible:=True;

end;

6. Вводжу описи глобальних констант та змінних програми.

Для цього перед розділом реалізації implementation додаю такий програмний код:

const   k=4;   

     a : array[1..k, 1..3] of string=(  

         (’car.wmf’, ’money.wmf’, ’bomb.wmf’),

         (’coins.wmf’, ’clock.wmf’, ’tennis.wmf’),

         (’brick.wmf’, ’building.wmf’, ’champagne.wmf’),

         (’dice.wmf’, ’donkey.wmf’, ’door.wmf’));

     b : array[1..k, 1..3] of string=(  

         (’money’, ’car’, ’bomb’), (’tennis’, ’clock’, ’coins’),

         (’building’, ’champagne’, ’brick’), (’dice’, ’door’, ’donkey’));

     check : array[1..k, 1..3] of integer=((2, 1, 3), (3, 2, 1), (3, 1, 2), (1, 3, 2));

var   Form1 : TForm1;  

       i, score : integer;

       shiftX, shiftY : integer;

Лист

1

5.05010201 ПР 4.1 03 28 ТЗ

Зм.

№ докум.

Арк.

Підпис

Дата

Кулик І.Я.

Пер.

Герич А.

Вик.


       left1, left2, left3 : integer;

       top1, top2, top3 : integer;

7. Зберігаю створену на даний момент форму у своїй папці.

Для цього вибираю команду головного меню File → Save All (Зберегти Все) або натискаю на кнопку Save All панелі інструментів. У першому рядку вікна, яке з’явиться (Save Unit1 As) під заголовком Save in: (Зберегти в:), за допомогою випадаючого меню вибираю ім’я робочого диска, після чого знаходжу і відкриваю свою власну папку. Задаю назву для файлу тексту програми, попередньо знищивши запропоновану комп’ютером назву Unit1.pas, PRGRM28.pas → Save. У наступному вікні Save Project1 As даю назву файлові проекту, стерши запропоновану комп’ютером назву Project1.dpr,PRJCT28.dpr → Save. Файли проекту та тексту програми називаю різними іменами.

8. Запрограмовую процедури: створення форми FormCreate, вставляння у неї малюнків SetPicture, виведення інформації про результат тесту Information та кнопку BitBtn2.

procedure TForm1.FormCreate(Sender: TObject);

begin

  i:=0;    

  score:=0;   

  left1:=Image1.Left; left2:=Image2.Left; left3:=Image3.Left;

  top1:=Image1.Top; top2:=Image2.Top; top3:=Image3.Top;

SetPicture; end;   

procedure SetPicture;

begin

  Form1.BitBtn1.Enabled:=False;

  i:=i+l;  

  if i > = k+1 then Information

  else

     begin

        Form1.Label2.Caption:=b[i, 1];  

        Form1.Label3.Caption:=b[i, 2];

        Form1.Label4.Caption:=b[i, 3];

        Form1.Image1.Picture.LoadFromFile(a[i, 1]);  

        Form1.Image2. Picture.LoadFromFile(a[i, 2]);

        Form1.Image3. Picture.LoadFromFile(a[i, 3]);

        Form1.Gauge1.Progress:=Form1.Gauge1.MaxValue;

        Form1.Imagel.Left:=left1; Forml.Image2.Left:=left2;

        Form1.Image3.Left: =left3; Form1.Imagel.Top:=top1;

        Form1.Image2.Top: =top2; Form1.Image3.Topr:=top3;

end; end;

procedure Information;

begin

  Form1.Timer1.Enabled:=False;  

  Forml.Timer2.Enabled:=False;  

  score:=(score*l00) div k;

  if score > 90 then Form1.MediaPlayer1.FileName:=’applause.wav’;

  if (score > 70) and (score < 90) then Form1.MediaPlayer1.FileName:=’clap.wav’;

  Form1.MediaPlayer1.Open;  

  Form1.MediaPlayer1.Play;  

  MessageDlg(’Bи набрали’ + IntToStr(score) + ’балів зі 100’, mtInformation, [mbOk], 0);

  Form1.Close;

end;

Лист

2

5.05010201 ПР 4.1 03 28 ТЗ

Зм.

№ докум.

Арк.

Підпис

Дата

Кулик І.Я.

Пер.

Герич А.

Вик.


procedure TForm1.BitBtn2Click(Sender: TObject);

begin

Information; end;

Процедури Information і SetPicture не є методами класу Form1. Тому зміна властивостей будь-яких об’єктів форми відбувається в них шляхом явного зазначення імені форми Form1 перед іменем відповідного об’єкта. Декларації процедур Information і SetPicture вставте між описом типу TForm1 і розділом під’єднаних модулів uses:

   procedure Information;

   procedure SetPicture;

9. Забезпечую перетягування першого малюнка (Image1) на формі, запрограмувавши опрацювання таких трьох подій для об’єкта Image1: OnMouseDown (якщо натиснути мишу), OnMouseMove (якщо

переміщати мишу) та OnMouseUp (якщо відпустити мишу).

Для заповнення заготовок наведених процедур використовую закладку Events вікна інспектора об’єктів першого малюнка.

procedure TForm1.Image1MouseDown(Sender: TObject; Button:

TMouseButton; Shift: TShiftState; X, Y: Integer);

begin

  Image1.Tag:=l;

  shiftY:=Y; shiftX:=X; end;

procedure TForm1.Image1MouseMove(Sender: TObject;

Shift: TShiftState; X,Y: Integer);

begin

  if Image1.Tag=l then  

begin

  Image1.Top:=Image1.Top+Y–shiftY; Image1.Left:=Image1.Left+X–shiftX;

end; end;

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

Shift: TShiftState; X, Y: Integer);

begin

  Image1.Tag:=0;  

end;

10. Аналогічно запрограмовую події OnMouseDown, OnMouseMove та OnMouseUp для перетягування двох інших малюнків (Image1, Image2).

11. Створюю ще один метод форми Form1 – функцію ImageInShape для перевірки розташування малюнка (об’єкта Image) всередині деякої геометричної фігури (об’єкта Shape).

function TForm1.ImageInShape(Image: TImage; Shape: TShape) : Boolean;

begin

if (Image.Left > = Shape.Left) and (Image.Left+Image.Width < = Shape.Left+Shape.Width) and

  (Image.Top > = Shape.Top) and (Image.Top+Image.Height < = Shape.Top+Shape.Height)

then ImageInShape:=True   

else ImageInShape:=False; end;  

Функція ImageInShape є методом класу Form1, тому звертання до властивостей будь-яких об’єктів форми Form1 здійснюється безпосередньо за допомогою імені цих об’єктів. Декларацію функції вставляю у розділ опису форми type TForm1 у секцію декларацій загальнодоступних процедур після службового слова public:

  function ImageInShape(Image: TImage; Shape: TShape) : Boolean;

12. Запрограмовую кнопку „Готово”, яка перевіряє правильність  розташування малюнків всередині фігур.

procedure TForm1.BitBtn1Click(Sender: TObject);

Лист

3

5.05010201 ПР 4.1 03 28 ТЗ

Зм.

№ докум.

Арк.

Підпис

Дата

Кулик І.Я.

Пер.

Герич А.

Вик.


var check1 ,check2, check3 : integer;

begin

  if ImageInShape(Image1, Shape1) then check1:=1;

  if ImageInShape(Image1, Shape2) then check1:=2;

  if ImageInShape(Image1, Shape3) then check1:=3;

  if ImageInShape(Image2,Shapel) then check2:=l;

  if ImageInShape(Image2,Shape2) then check2:=2;

  if ImageInShape(Image2,Shape3) then check2:=3;

  if ImageInShape(Image3,Shapel) then check3:=1;

  if ImageInShape(Image3,Shape2) then check3:=2;

  if ImageInShape(Image3,Shape3) then check3:=3;

if (check[i, l]=check1) and (check[i, 2]=check2) and (check3=check[i, 3])

then score:=score+1;

  SetPicture; end;

13. Запрограмовую другий таймер, який забезпечує доступність кнопки „Готово” лише у випадку правильного розташування всіх малюнків у відведених прямокутниках та індукує час зі швидкістю, обернено пропорційною до числа в SpinEdit1.

У випадку, коли користувач не встиг розташувати малюнки у прямокутниках і натиснути на кнопку „Готово” за належний час, подається звуковий сигнал, спроба не зараховується, і відбувається перехід до наступної серії малюнків.

procedure TForml.Timer2Timer(Sender: TObject);

begin

Timer2.Interval:=SpinEdit1.Value*100;

if ( ImageInShape(Image1, Shape1) or ImageInShape(Image2, Shape1)

     or ImageInShape(Image3, Shape1) ) and

     ( ImageInShape(Image1, Shape2) or ImageInShape(Image2, Shape2)

     or ImageInShape(Image3, Shape2) ) and

     ( ImageInShape(Image1, Shape3) or ImageInShape(Image2, Shape3)

     or ImageInShape(Image3, Shape3) )

then BitBtn1.Enabled:=True;  

Gauge1.Progress:=Gauge1.Progress–l;

if Gauge1.Progress=0 then

  begin

     MediaPlayer1.FileName:=’ding.wav’; MediaPlayer1.Open;

     MediaPlayer1.Play; SetPicture; end; end;

14. Зберігаю виконану на даний момент роботу у своїй папці.

Для цього виконую команду: File → Save All.

15. Копіюю музичні файли ding.wav, applause.wav та clap.wav у свою робочу папку з папки С: \ Windows \ Media \ Office.

16. Копіюю малюнки car.wmf, money.wmf, bomb.wmf, coins.wmf, clock.wmf, tennis.wmf, brick.wmf, building.wmf, champagne.wmf, dice.wmf, donkey.wmf, door.wmf у свою робочу папку з папки С: \ Program Files \ Microsoft Office \ Clipart \ Popular.

17. Запускаю створену програму і досліджую її роботу.

Запустити програму на виконання можна декількома способами: виконати команду Run → Run головного меню; клацнути на кнопці Run панелі інструментів; натиснути на функціональну клавішу F9. Перетягуйте мишею малюнки всередину відповідних фігур.

18. Створюю exe – файл програми.

Виконую команду головного меню Project Build All.

19. Виходжу із середовища Delphi та запускаю створену програму.

Запускаю exe – файл з іменем проекту зі своєї власної папки.

20. Демонструю створений проект викладачеві.

Лист

4

5.05010201 ПР 4.1 03 28 ТЗ

Зм.

№ докум.

Арк.

Підпис

Дата

Кулик І.Я.

Пер.

Герич А.

Вик.


21. Закриваю всі відкриті вікна. Завершую роботу.

Висновок: на практичній роботі , я навчитися користуватися основними елементами інтерфейсу середовища програмування Delphi для створення, редагування, налагодження та виконання навчальних програм (проектів).

Лист

5

5.05010201 ПР 4.1 03 28 ТЗ

Зм.

№ докум.

Арк.

Підпис

Дата

Кулик І.Я.

Пер.

Герич А.

Вик.




1. х годов 20 века. Нужны были новые формы продвижение продукта.
2. Организация синтетического и аналитического учета источников собственных средств предприятия
3. Тема- Система организация и формы государственного управления Составитель- старший преподаватель Бакиров
4. УтверждаюПрезидент Федерации ПауэрлифтингаСанктПетербурга WPC-WPCБогданов М
5. НЕТ ДАТА РОЖДЕНИЯ МЕСТО РОЖДЕНИЯ
6. Установчі збори у Росії
7.  Загальний розділ
8. х КЛАССОВ 3 часа Данная программа составлена на ос
9. МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ по преддипломной практике студентов специальности 080507
10. нейрон связана с помощью дендритов и аксонов с такими же клетками и клетками других типов например с секр
11. Культура Китая
12. Робота ГЕС в енергосистемі, яка працює на побутовому стоці
13. Время его герой и антигерой
14. Контрольная работа- Нравственные проблемы эвтаназии
15. Статья- The creation and activities of local organizations of the Bund Belarus
16.  Средства анализа и проектирования предназначенные для построения и анализа как моделей деятельности орга
17. ЩЕКИНОАЗОТ приглашает на постоянную работу специалистов в области лингвистики и перевода на должность
18. Тема код по кодиф
19. Предварительная оценка запасов подземных вод месторождения Ростань (г
20. тематизации исторических знаний по рекламе в отечественной литературе.html