Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kolokvium_z_OOP_2010_vsi.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
133.27 Кб
Скачать

30.Напишіть програму Sphere!

program Project7;

{$APPTYPE CONSOLE}

{$R *.res}

uses

SysUtils;

Const Pi=3.14;

Type Sphere = class(Tobject)

private

R:real;

public

Constructor Creat (x:Real);

Procedure SetRadius(NewRadius:real);

Function GetRadius :real;

Function GetDiametr :real;

Function GetLKola :real;

Function GetArea :real;

Function GetVolume :real;

Procedure DisplayStatistic ;

End;

Procedure Sphere.SetRadius(NewRadius:Real);

Begin

if R>0 then R:=NewRadius

else R:=1;

End;

Constructor Sphere.Creat(x: Real);

Begin

R:=x;

End;

Function Sphere.GetRadius;

Begin

GetRadius:=R;

End;

Function Sphere.GetDiametr;

Begin

GetDiametr:=2.0*R;

end;

Function Sphere.GetLKola;

Begin

GetLKola:=Pi*GetDiametr;

end;

Function Sphere.GetArea;

Begin

GetArea:=4.0*Pi*R*R;

End;

Function Sphere.GetVolume;

Begin

GetVolume:=(4.0*Pi*R*R*R)/3.0;

End;

Procedure Sphere.DisplayStatistic;

Begin

Writeln('Radius=',GetRadius);

Writeln('Diametr=',GetDiametr);

Writeln('Lenght=',GetLKola:10:4);

Writeln('Area=',GetArea:10:4);

Writeln('Volume=',GetVolume:10:4);

End;

Var MySphere:Sphere;

nSphere: Sphere;

newRadius: Real;

T:integer;

Begin

Write('My Radius='); read(newRadius);

MySPhere:=Sphere.Creat(newRadius);

nSphere:=Sphere.Creat(6.0);

MySphere.SetRadius(newRadius);

Writeln(pi*nSphere.GetRadius);

MySphere.DisplayStatistic;

Writeln;

Writeln('======Statistic=====');

nSphere.DisplayStatistic;

end.

31. Повідомлення в Delphi.

Повідомлення – це динамічні методи. Спеціалізованою функцією динамічних методів є методи обробки повідомлень.Їх оголошують за допомогою ключового слова message, за яким слідує цілочисельна константна – номер повідомлення.

Type TWControl = class(TControl);

……..

Procedure CMKeyDown(var Msg:TCMKeyDown); message CM_KeyDown;

…….

End;

За ключовим словом message,яке стоїть в кінці заголовка процедури стоїть зарезервована константа в якій зашифровано номер повідомлення

CM- компонента Message;

WM- Windows message;

Метод обробки повідомлення має формат процедури і містить єдиний var-параметр.

При перекриті такого методу назва методу, імя параметра можуть бути будь-якими, важливо лише, щоб не змінним залишався номер повідомлення використаний для виклику методу.Виклик методу виконується по імені за допомогою звернення до спеціального методу Dispatch, який є в кожному класі.

32.Події в Delphi.

Подія- властивість процедурного типу, призначена для створення реакції користувача на ту або іншу вхідну дію.

Програмування, яке орієнтоване на події є однією із особливостей програмування під Віндовс.

Список подій для даного обєкта, на який він реагує, можна побачити в Обджект Інспектор на сторінці Івентс. Із сказаного випливає що існує 2-і категорії подій і способів їх обробки

Одні спрацьовуються засобами Віндовс, інші – засобами бібліотеки VLC Delphi. Окрім передбачуваних, є ще не стандартні які може обробляти Delphi або ми самі:

MessageDlg(‘Привіт’,mtlnformation,[mbOk]);

При винекнені події ОС передає певну інформацію повязану з нею:

Procedure TForm1.FormMouseDown(Sender:TObject; Button:TMouseButton; Shift: TShift State; X,Y:Integer);

Begin

Canvas.TextOut(x,y; ‘x’+intotstr(x)+’y’+inttostr(y));

End;

Procedure TForm1.FormKeyDown(………..);

Begin

MessageDlg(Chr(key),mtlnformation,[mbOk], 0);

End;

  • FonMyEvent - поле процедурного типу, що містить адресу деякого методу. Такі методи називають обробники подій. При активації об`єкту Application.OnAtcive:=MyActivatingMethod буде викликано метод-обробник.

Події мають різні параметри.Sender в казує на обєкт-джерело події. Всі події в Делфі принято позначати з префіксом Оn.

Висновки:

-Віндовс є системою яка орієнтована на події.

-Події у Віндовс мають форму повідомлень

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]