37782

Ознайомлення з інструментальним середовищем програмування Delphi. Робота з простими візуальними об’єктами

Лабораторная работа

Информатика, кибернетика и программирование

Розробити проект, в якому на формі розмістити необхідні компоненти для введення координат вершин трикутника (TEdit, TLabel). Для виконання обчислень і завершення роботи програми використати компоненти TButton. Для вибору необхідного варіанту обчислень застосувати компонент RadioButton або TCheckBox. Результати обчислень виводити в компонент TLabel

Украинкский

2013-09-25

1.5 MB

4 чел.

5

Міністерство освіти і науки України

Хмельницький національний університет

Кафедра системного програмування

Лабораторна робота №3

з програмування

на тему:

«Ознайомлення з інструментальним середовищем програмування Delphi. Робота з простими візуальними об’єктами»

Виконав:

Студент групи КІ-10-1

Ноль М.Г.

Перевірив:

Мостовий С.В.

Хмельницький

2011

Лабораторна робота №3

Тема: Ознайомлення з інструментальним середовищем програмування Delphi. Робота з простими візуальними об’єктами.

Мета:ознайомитись з інструментальним середовищем програмування Delphi та його простими візуальними об’єктами.

Завдання

Розробити проект, в якому на формі розмістити необхідні компоненти для введення координат вершин трикутника (TEdit, TLabel). Для виконання обчислень і завершення роботи програми використати компоненти TButton. Для вибору необхідного варіанту обчислень застосувати компонент RadioButton або TCheckBox. Результати обчислень виводити в компонент TLabel. Для компонентів, які відображують результати роботи, заборонити можливість правки в компоненті. Забезпечити перевірку введених даних із видачею відповідного повідомлення та блокуванням компонентів форми у випадку некоректних даних.

Знайти кут A і медіану Мb.

Unit1.pas

unit Unit1;

{$mode objfpc}{$H+}

interface

uses

 Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,

 StdCtrls;

type

 { TForm1 }

 TForm1 = class(TForm)

   Button1: TButton;    Button2: TButton;    Button3: TButton;

   Edit1: TEdit;    Edit2: TEdit;    Edit3: TEdit;    Edit4: TEdit;    Edit5: TEdit;    Edit6: TEdit;

   Label1: TLabel;    Label2: TLabel;    Label3: TLabel;    Label4: TLabel;    Label5: TLabel;

   Label6: TLabel;    Label7: TLabel;

   RadioButton1: TRadioButton;    RadioButton2: TRadioButton;

   procedure Button1Click(Sender: TObject);

   procedure Button2Click(Sender: TObject);

   procedure Button3Click(Sender: TObject);

   procedure Edit1KeyPress(Sender: TObject; var Key: char);

   procedure Edit2KeyPress(Sender: TObject; var Key: char);

   procedure Edit3KeyPress(Sender: TObject; var Key: char);

   procedure Edit4KeyPress(Sender: TObject; var Key: char);

   procedure Edit5KeyPress(Sender: TObject; var Key: char);

   procedure Edit6KeyPress(Sender: TObject; var Key: char);

   procedure FormCreate(Sender: TObject);

 private

   { private declarations }

 public

   { public declarations }

 end;

var

 Form1: TForm1;

implementation

{ TForm1 }

procedure TForm1.FormCreate(Sender: TObject);

begin

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

 Close;

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

 Edit1.Clear;  Edit2.Clear;  Edit3.Clear;  Edit4.Clear;  Edit5.Clear;  Edit6.Clear;

 Label7.Caption:='Результат: '

end;

procedure TForm1.Button1Click(Sender: TObject);

var xa,xb,xc,ya,yb,yc,AB,BC,AC,Mb,A: real;

begin

if (Edit1.Text<>'') and (Edit2.Text<>'') and (Edit3.Text<>'') and (Edit4.Text<>'') and (Edit5.Text<>'') and (Edit6.Text<>'') then

     begin

     xa:=StrToFloat(Edit1.Text);      xb:=StrToFloat(Edit2.Text);      xc:=StrToFloat(Edit3.Text);

     ya:=StrToFloat(Edit4.Text);      yb:=StrToFloat(Edit5.Text);      yc:=StrToFloat(Edit6.Text);

     AB:=sqrt(sqr(xb-xa)+sqr(yb-ya));

     BC:=sqrt(sqr(xc-xb)+sqr(yc-yb));

     AC:=sqrt(sqr(xc-xa)+sqr(yc-ya));

     if not ((AB+BC>AC) and (AB+AC>BC) and (BC+AC>AB)) then ShowMessage('Дані точки не утворюють трикутник! Введіть інші дані!') else

           begin

           if RadioButton1.Checked then

                 begin

                 A:=arctan(sqrt(1 - sqr((AB*AB + AC*AC - BC*BC)/(2*AC*AB))) / ((AC*AC+AB*AB-BC*BC)/(2*AC*AB)));

                 A:=abs(A*180/pi);

        Label7.Caption:='Результат: '+'A='+FloatToStrF(A,ffFixed,3,2)+' градусів';

                 end

           else

                 begin

                 Mb:=sqrt((2*BC*BC+2*AB*AB-AC*AC)/4);

                 Label7.Caption:='Результат: '+'Mb='+FloatToStrF(Mb,ffFixed,10,5);

                 end;

           end;

     end

else ShowMessage('Введіть координати усіх точок!');

end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: char);

begin

 case Key of

   #8,'0'..'9': ;

   '-': if Edit1.Text<>'' then Key:=#0;

   ',': begin if Length(Edit1.Text)-pos('-',Edit1.Text)=0 then Key:=#0;

        if pos(',',Edit1.Text)<>0 then Key:=#0;

        end

 else Key:=#0;

 end;

end;

procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: char);

begin

 case Key of

   #8,'0'..'9': ;

   '-': if Edit2.Text<>'' then Key:=#0;

   ',': begin if Length(Edit2.Text)-pos('-',Edit2.Text)=0 then Key:=#0;

        if pos(',',Edit2.Text)<>0 then Key:=#0;

        end

 else Key:=#0;

 end;

end;

procedure TForm1.Edit3KeyPress(Sender: TObject; var Key: char);

begin

 case Key of

   #8,'0'..'9': ;

   '-': if Edit3.Text<>'' then Key:=#0;

   ',': begin if Length(Edit3.Text)-pos('-',Edit3.Text)=0 then Key:=#0;

        if pos(',',Edit3.Text)<>0 then Key:=#0;

        end

 else Key:=#0;

 end;

end;

procedure TForm1.Edit4KeyPress(Sender: TObject; var Key: char);

begin

 case Key of

   #8,'0'..'9': ;

   '-': if Edit4.Text<>'' then Key:=#0;

   ',': begin if Length(Edit4.Text)-pos('-',Edit4.Text)=0 then Key:=#0;

        if pos(',',Edit4.Text)<>0 then Key:=#0;

        end

 else Key:=#0;

 end;

end;

procedure TForm1.Edit5KeyPress(Sender: TObject; var Key: char);

begin

 case Key of

   #8,'0'..'9': ;

   '-': if Edit5.Text<>'' then Key:=#0;

   ',': begin if Length(Edit5.Text)-pos('-',Edit5.Text)=0 then Key:=#0;

        if pos(',',Edit5.Text)<>0 then Key:=#0;

        end

 else Key:=#0;

 end;

end;

procedure TForm1.Edit6KeyPress(Sender: TObject; var Key: char);

begin

 case Key of

   #8,'0'..'9': ;

   '-': if Edit6.Text<>'' then Key:=#0;

   ',': begin if Length(Edit6.Text)-pos('-',Edit6.Text)=0 then Key:=#0;

        if pos(',',Edit6.Text)<>0 then Key:=#0;

        end

 else Key:=#0;

 end;

end;

initialization

 {$I unit1.lrs}

end.

Результати:

Висновок.  Виконавши лабораторну роботу, я ознайомився з простими компонентами середовища Delphi, такими як TLabel, TEdit, TButton, TRadioButton та засвоїв принципи роботи з їх властивостями, отримав навички створення найпростіших обробників подій з можливістю перевірки вхідних даних та виведення інформаційних повідомлень.


 

А также другие работы, которые могут Вас заинтересовать

16681. ЗАЛОГ, АРЕСТ ИМУЩЕСТВА, ИСК КАК СПОСОБЫ ОБЕСПЕЧЕНИЯ ПРАВ КРЕДИТОРА 20.13 KB
  ЗАЛОГ АРЕСТ ИМУЩЕСТВА ИСК КАК СПОСОБЫ ОБЕСПЕЧЕНИЯ ПРАВ КРЕДИТОРА К. СКЛОВСКИЙ К. Скловский член Ставропольской краевой коллегии адвокатов кандидат юридических наук. В системе защиты нарушенных имущественных прав теперь на первое место вышел вопрос о реал
16682. ФОРМА ДОГОВОРА ПОРУЧИТЕЛЬСТВА 12.54 KB
  О ФОРМЕ ДОГОВОРА ПОРУЧИТЕЛЬСТВА К. СКЛОВСКИЙ К. Скловский член Ставропольской краевой коллегии адвокатов кандидат юридических наук. Бурное развитие банковского кредита привело к столь же интенсивному развертыванию отношений по поручительству гарантий ко
16683. ДЕЙСТВИТЕЛЬНОСТЬ ПРОДАЖИ ЧУЖОГО ИМУЩЕСТВА 85.94 KB
  О ДЕЙСТВИТЕЛЬНОСТИ ПРОДАЖИ ЧУЖОГО ИМУЩЕСТВА К.И. СКЛОВСКИЙ К.И. Скловский доктор юридических наук. Еще несколько лет назад рассуждения о различении вещного и обязательственного эффекта куплипродажи казались многим юристам отвлеченной теорией. Сегодня ситуа
16684. НЕКОТОРЫЕ ПРОБЛЕМЫ ПРАВА НА НЕЖИЛОЕ ПОМЕЩЕНИЕ 50.09 KB
  НЕКОТОРЫЕ ПРОБЛЕМЫ ПРАВА НА НЕЖИЛОЕ ПОМЕЩЕНИЕ К.И. СКЛОВСКИЙ К.И. Скловский доктор юридических наук. Известно что такой объект как нежилое помещение является одним из самых распространенных в гражданском обороте а в сфере аренды недвижимости решительно пре
16685. НЕКОТОРЫЕ ПРОБЛЕМЫ РЕСТИТУЦИИ 67.14 KB
  НЕКОТОРЫЕ ПРОБЛЕМЫ РЕСТИТУЦИИ К.И. СКЛОВСКИЙ К.И. Скловский доктор юридических наук. Вопросу о котором пойдет речь посвящено достаточное количество исследований тем не менее он не утрачивает своей остроты. Более того кажется что за последние годы он стал ещ
16686. ПРОБЛЕМЫ ИЗЪЯТИЯ ЗАЛОГА 12.83 KB
  ПРОБЛЕМЫ ИЗЪЯТИЯ ЗАЛОГА К.И. СКЛОВСКИЙ Скловский Константин Ильич доктор юридических наук адвокат профессор кафедры гражданского права КГАУ имеет около 120 научных публикаций. Главное качество залога право следования за вещью в силу которого залогодержате...
16687. НЕКОТОРЫЕ ПРОБЛЕМЫ ОСПАРИВАНИЯ В СУДЕ РЕАЛИЗАЦИИ ИМУЩЕСТВА НА ТОРГАХ 52.63 KB
  НЕКОТОРЫЕ ПРОБЛЕМЫ ОСПАРИВАНИЯ В СУДЕ РЕАЛИЗАЦИИ ИМУЩЕСТВА НА ТОРГАХ К.И. СКЛОВСКИЙ Скловский Константин Ильич доктор юридических наук адвокат профессор кафедры гражданского права КГАУ имеет около 120 научных публикаций. Нарастающее число споров о признан...
16688. ВЛИЯНИЕ ПРОЦЕДУРЫ ГОСУДАРСТВЕННОЙ РЕГИСТРАЦИИ НА ЧАСТНЫЕ ОТНОШЕНИЯ 29.53 KB
  О ВЛИЯНИИ ПРОЦЕДУРЫ ГОСУДАРСТВЕННОЙ РЕГИСТРАЦИИ НА ЧАСТНЫЕ ОТНОШЕНИЯ К.И. СКЛОВСКИЙ Скловский Константин Ильич доктор юридических наук адвокат профессор кафедры гражданского права КГАУ имеет около 120 научных публикаций. Соотношение публичных и частнопра...
16689. ОТНОШЕНИЯ СОБСТВЕННИКА С НЕЗАКОННЫМ ВЛАДЕЛЬЦЕМ И ПРИОБРЕТАТЕЛЬНАЯ ДАВНОСТЬ 19.08 KB
  ОТНОШЕНИЯ СОБСТВЕННИКА С НЕЗАКОННЫМ ВЛАДЕЛЬЦЕМ И ПРИОБРЕТАТЕЛЬНАЯ ДАВНОСТЬ К.И. СКЛОВСКИЙ Скловский Константин Ильич доктор юридических наук адвокат профессор кафедры гражданского права КГАУ имеет около 120 научных публикаций. Во владении физических и ос