Перечень основных компонент, необходимых для выполнения работы
Лекции.ИНФО


Перечень основных компонент, необходимых для выполнения работы



TFORM, TLABEL, TEDIT, TSCROLLBAR, MessageDlg, MessageBox

 

Пример разработки приложения с минимальной функциональностью.

 

Ниже приведена программа, обладающая следующей функцио­нальностью. Имеется меню, содержащее пункты – Моделирование и О программе

Подпункты меню Моделирование позволяют построить ряд стандартных графических примитивов, нарисовать траекторию камня, брошенного под углом к горизонту. Диалоговое окно О программе реализовано как отдельный модуль (диалог) и (вследствие его простоты) в методичке не показано, но доступно на диске.

 

unit L2_4;

Interface

Uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Menus, StdCtrls, ComCtrls, ExtCtrls;

Const

SizeN=50;

dt=0.05;

Type

TForm1 = class(TForm)

MainMenu1: TMainMenu;

N1,N2,N3,N4,N5,N6,N7,N8: TMenuItem;

Timer1: TTimer;

Button1,Button2 ,Button3:: TButton;

Image1,Image2, Image3: TImage;

public

procedure N8Click(Sender: TObject);

procedure N6Click(Sender: TObject);

procedure N2Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure N3Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure N4Click(Sender: TObject);

procedure UpDown1Changing(Sender: TObject; var AllowChange: Boolean);

procedure Timer1Timer(Sender: TObject);

procedure Button1Click(Sender: TObject);

end;{class}

Var

Form1: TForm1;

PointsArray: array[1..SizeN] of TPoint;

fi:real;

vx,vy:real;

xx,yy,SizeYY:integer;

t:real;

Implementation

uses Unit2_4_2;

{$R *.dfm}

 

{Обработка события «О программе»}

procedure TForm1.N8Click(Sender: TObject);

begin

OKRightDlg.ShowModal;

end; {Proc}

 

{Обработка события «пункт меню Выход»}

procedure TForm1.N6Click(Sender: TObject);

begin

close;

end;{Proc}

 

{Обработка события «Моделирование-прямые»}

procedure TForm1.N2Click(Sender: TObject);

var

i:integer; sizeX,sizeY:integer;

begin

Image1.visible:=true;

sizeX:=Image1.BoundsRect.Right-Image1.BoundsRect.Left;

sizeY:=Image1.BoundsRect.Bottom – Image1.BoundsRect.Top;

randomize;

for i:=1 to SizeN do begin

PointsArray[i].X:=random(sizeX); PointsArray[i].Y:=random(sizeY);

end;

Image1.Canvas.MoveTo(PointsArray[1].X,PointsArray[1].Y);

for i:=2 to SizeN do begin

Image1.Canvas.Lineto(PointsArray[i].X,PointsArray[i].Y);

end;

Button2.Visible:=true;

end; {Proc}

 

{Обработка события «Закончить рисование линий»}

procedure TForm1.Button2Click(Sender: TObject);

begin

Image1.visible:=false; Button2.Visible:=false;

end; {Proc}

 

{Обработка события «Моделирование - эллипсы»}

procedure TForm1.N3Click(Sender: TObject);

var

i:integer;

sizeX,sizeY:integer;

begin

Image2.visible:=true;

sizeX:=Image2.BoundsRect.Right-Image2.BoundsRect.Left;

sizeY:=Image2.BoundsRect.Bottom-Image2.BoundsRect.Top;

randomize;

for i:=1 to SizeN do begin

PointsArray[i].X:=random(sizeX); PointsArray[i].Y:=random(sizeY);

end;

for i:=1 to SizeN do begin

Image2.Canvas. Ellipse(PointsArray[i].X,PointsArray[i].Y,

PointsArray[i].Y,PointsArray[i].X);

end;

Button3.Visible:=true;

end; {Proc}

 

{Обработка события «Закончить рисование эллипсов»}

procedure TForm1.Button3Click(Sender: TObject);

begin

Image2.visible:=false; Button3.Visible:=false;

end; {Proc}

 

{Обработка события пункт меню «Камень»}

procedure TForm1.N4Click(Sender: TObject);

var

i:integer;

sizeX,sizeY:integer;

begin

Image3.visible:=true; Button1.visible:=true;

 

sizeX:=Image3.BoundsRect.Right-Image3.BoundsRect.Left;

sizeY:=Image3.BoundsRect.Bottom-Image3.BoundsRect.Top;

sizeYY:=Image3.BoundsRect.Bottom – Image3.BoundsRect.Top;

 

vx:=round(50/1.4); vy:=round(50/1.4); fi:=arctan(vy/vx);

xx:=0; yy:=sizeY; t:=0;

Image3.Canvas.MoveTo(0,SizeY);

Image3.Canvas.Lineto(0+round(50*Cos(fi)), SizeY-round(50*Sin(fi)));

Image3.Canvas.MoveTo(0,SizeY);

Image3.Canvas.Pen.Color:=clBlue;

end; {Proc}

 

{Обработка события «Угол наклона»}

procedure TForm1.UpDown1Changing(Sender: TObject;

var AllowChange: Boolean);

begin

fi:=arctan(vy/vx);

end; {Proc}

 

{Обработка события «Таймер»}

procedure TForm1.Timer1Timer(Sender: TObject);

begin

t:=t+dt;

xx:=round(xx+vx*dt); vy:=vy-10*dt; yy:=round(yy-vy*dt);

Image3.Canvas.LineTo(xx,yy);

if(yy>sizeYY) then begin

Timer1.enabled:=false; button1.Caption:='STOP';

end;

end; {Proc}

 

procedure TForm1.Button1Click(Sender: TObject);

begin

if(button1.caption='START') then begin

Timer1.Enabled:=true;

end else begin

button1.Caption:='START'; button1.Visible:=false;

Timer1.enabled:=false; Image3.Hide;

end;

end; {Proc}

end{Unit}.

 

Примерный перечень заданий для выполнения студентами

 

Построить графики и численно найти нули следующих функций (координатные оси должны быть нарисованы и подписаны)

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

13.

14.

15. Найти численное значение числа π, используя следующий алгоритм: строится круг единичного радиусас центром в начале координат, вокруг него описывается квадрат. В пределах построенного квадрата случайным образом ставятся точки. При этом

,

где N – общее число точек, m – число точек, попавших в круг, Skp – площадь круга, Skb – площадь квадрата. Изобразить решение графически.

 

Вопросы для самопроверки

 

1. Элемент управления UpDown для выбора угла бросания не работает, как его настроить?

2. Камень в примере летит «как то не так…», что надо сделать, чтобы действительно нарисовать параболу?

3. Почему затирается текст «Рисуем линии» при действиях с окном формы, а область Image - нет?

4. На каких еще видимых элементах можно рисовать?

5.Как правильно выводить на форму массивы точек, чтобы они не затирались при перерисовке окна?


ЛАБОРАТОРНАЯ РАБОТА Л-2.5

 

ООП, классы, методы, наследование

 

Целью пятой лабораторной работы является освоение концепций наследования, полиморфизма и виртуальных правил на базе простых иерархий графических объектов. При этом используются процедуры работы с графикой стандартных классов системы Delphi, порожденных от TСontrol, осваивается материал, связанный со сложными (вектор­ными свойствами) и обработка клавиатурных событий.

 

Материал Уч. Д1, необходимый для написания работы, –









Читайте также:

  1. B. Основной кодекс практики для всех обучающих тренеров
  2. Cyanocobalamin, крайне важного вещества для здоровья тела. Для многих
  3. D. НОВЫЕ ТЕХНОЛОГИИ ДЛЯ ОБЕСПЕЧЕНИЯ ХРАНЕНИЯ И ДОСТУПА К ИНФОРМЦИИ О ПРОМЫШЛЕННОЙ СОБСТВЕННОСТИ
  4. E. Лица, участвующие в договоре, для регулирования своих взаимоотношений могут установить правила, отличающиеся от правил предусмотренных диспозитивными нормами права.
  5. I. АНАЛИЗ И ПОДГОТОВКА ПРОДОЛЬНОГО ПРОФИЛЯ ПУТИ ДЛЯ ВЫПОЛНЕНИЯ ТЯГОВЫХ РАСЧЕТОВ
  6. I.4. Библиографический поиск необходимых литературных источников
  7. II. Организация выполнения курсовой работы
  8. III. Приёмы приготовления начинок и фаршей для тестяных блюд: пирогов, пельменей, вареников, пирожков
  9. III. Узлы для связывания двух тросов
  10. IX. Узлы для рыболовных снастей
  11. L-карнитин для похудения: эффективность, свойства и дозировки
  12. Microoft выпустила новое оборудование для компьютеров


Последнее изменение этой страницы: 2016-03-17; Просмотров: 58;


lektsia.info 2017 год. Все права принадлежат их авторам! Главная