Напишіть приклад опису простого класу в Delphi. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Напишіть приклад опису простого класу в Delphi.



Type TPerson = class

Private

FName: String[15];

FAddress: String[35];

Public

Procedure Show;

End;

Var Student: TPerson;

Professor: TPerson;

 

Методи класів Delphi та їхні модифікатори.

На відміну від звичайних процедур та функцій кожному методу надається неявно описана змінна Shell (адреса об’єкта).

За функціональним призначенням розрізняють:

- конструктори;

- деструктори;

- селектори;

- модифікатори.

Типи методів:

- статичні;

- динамічні;

- абстрактні;

- віртуальні.

Модифікатори: static, dynamic, virtual, override, inherited, sealed, inline.

19*. Структура проекту в Delphi та його складові частини. Методика створення проекту.

Проект Delphi складається з форм, модулів, установок параметрів проекту, його ресурсів (бітові файли, піктограми) і так далі. На етапі проектування Delphi створює сукупність файлів, з яких складається додаток. Результатом проектування додатку, розробленого в Delphi, є EXE-файл для виконання в середовищі Windows. Він формується на базі проекту додатку. Один проект відповідає одному додатку.

Проект повинен мати певну структуру каталогів для зберігання файлів проекту. Імена файлів, форм, компонентів і змінних повинні відображати їх зміст. Проект – це набір взаємозв'язаних форм і модулів, створюючих додаток. Модулі проекту використовують інші модулі, визначені їх оператором Uses.

До складу проекту входять наступні файли:

- файл проекту (розширення.DPR – DelphiPRoject); у проекті застосування він єдиний;

- опис всіх форм, що входять в проект, кожна форма проекту має файл форми (розширення DFM – від Delphi FORM);

- модулі форм (розширення PAS), файл створюється автоматично для кожної форми проекту;

- файли з параметрами проекту (розширення DOF, від DelphiOptionFile);

- файли з описами ресурсів (розширення RES, від DelphiComponentRESourse).

 

Структура проекту в Delphi та його складові частини. Методика створення проекту.

У Delphi розробляється проект програми. При цьому автоматично створюється кілька файлів:

project1.dpr – delphi project – саме ядро програми – текстовий файл де описана головна програма, що викликає всі компоненти.

unit1.pas – текстовий файл, де описаний алгоритм всіх подій, що відбуватимуться з елементами (компонентами) форми. Ця частина у Delphi носить назву модуль (unit).

unit1.dfm – файл опису розташування компонентів на полотні формі.

PROJECT1.RES – містить іконку для проекта.

Таким чином, при написанні програми, алгоритмічна частина робота ведеться з pas–файлом. dpr–файл керується автоматично самим проектом при роботі з компонентами інтерфейсу.

Спочатку вважатимемо, що кожній формі відповідає один модуль. Ще раз зауважимо, що у формі створюється інтерфейс, тобто “ліпляться” компоненти, а у модулі описуються події, що можуть відбуватись з цими компонентами

При запуску або створенні нового проекту Delphi автоматично створює pas – файл форми з базовими елементами, необхідними для роботи проекту.

 

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

type

TForm1 = class(TForm)

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

Implementation

{$R *.DFM}

end.

 

Слово Unit говорить про те, що це модуль.

Interface – блок програми, в якому визначаються типи, змінні, константи, процедури та функції, що доступні іншим модулям.

Uses – перераховані всі зовнішні (у даному випадку стандартні) модулі, які необхідні даному модулю в процесі роботи.

Type TForm1 = class(TForm) – створена форма належить до класу Tform. Tform – абстрактний об’єкт, у якому описані всі події та можливості керування всіма елементами форми. Він є спадкоємцем класу Tform, тобто, успадковує його властивості та методи, додаючи до них власні.

Project.dpr; Project.cfg; Project.dof; Project1.res;

Unit1.pas; Unit1.dfm

Project1.dpr:

program Project1;

uses
Forms,
Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.

Файл проекту (головний модуль) починається словом program, яке співпадає з ім’ям проекту. Далі за словом uses йдуть імена використо-вуваних модулів: стандартного модуля Forms і модуля форми Unit1. Схожа на коментар директива {$R *.res} вказує компілятору на те, що потрібно використовувати файл ресурсів, який містить опис ресурсів додатку, наприклад піктограми. Зірочка указує на те, що ім’я ресерсів таке саме, як і у файлу проекта, але з розширенням.res. Виконувана частина головного модуля знаходиться між begin:end. Оператори виконуваної частини забезпечують ініціалізацію застосунку(додатку, в оригіналі «application») і виводу на екран стандартного вікна. Крім головного модуля кожна програма включає в себе як мінімум один модуль форми, який містить опис стартової форми застосунку і який підтримує роботу процедур.

 

Конструктори та деструктори. Їхнє призначення та правила використання.

Конструктори призначені для створення конкретного екземпляра об’єкта. Зарезервоване слово Constructor призначає компіляторові створити особливий код прологу, за яким настроюють таблицю віртуальних методів. Якщо в об’єкті немає віртуальних методів, то в ньому може і не бути жодного конструктора. Типова дія конструктора базується на тому, щоб наповнити об’єктні поля конкретними значеннями. У TObject є метод create – конструктор за замовчуванням. Якщо ми не визначимо свій конструктор запустить автоматично і заповнить поля і властивості.

Деструктор (описують зарезервов. словом «Destructor»), на відміну від конструктора, не зв’язаний з будь-якими специфічними діями. Процедуру, яка руйнує екземпляр об’єкта, прийнято називати деструктором. З деструкторами поєднюють процедури, які не тільки припиняють роботу з певним об’єктом, але й звільняють виокремлену йому динамічну пам’ять. У класі TObject є стандартний деструктор –Destroy (інують ще два: Free і FreeAndNil).

 

Наведіть приклади використання конструкторів.

А) Приклад конструктора:

Constructor TPerson.Create;

BEGIN

Fname:=’’;

Faddress:=’’;

END;

Б) За допомогою ключового слова inheritedвикликаємо конструктор предка, потім заповнюємо значенням поле нащадка.

Constructor Temployee.Create(Name: TName; Dep: integer);

Begin

Inherited Create(Name); //тілоконструктора

FDepartment:=Dep;

End;

 

Поясніть призначення кожного із специфікаторів рівня доступу у Delphi.

 

рівнів доступу:

- Private – закрита частина классу

- Public – загальнодоступна частина класі

- Published – поля, які можна редагувати в Object Inspector при створенні інтерфейсу

- Protected – частина класу доступна нащадкам даного класу

- Automated – використовувався у ранніх версіях Delphi

- Strict – для посилання на область видимості

 

Властивості, їхнє призначення, правила використання та синтаксис оголошення.

Властивості – специфічне поєднання даних із процедурами і/або функціями.

Властивості являють собою атрибути, які складають індивідуальність об'єкта і допомагають описати його. Наприклад, звичайна кнопка у вікні додатку має такі властивості, як колір, розміри, положення. Для екземпляра класу "кнопка" значення цих атрибутів задаються за допомогою властивостей — спеціальним змінним, обумовленим ключовим словом property. Колір може задаватися властивістю Color, розміри — властивостями Width і Height і т.д.

Оскільки властивість забезпечує обмін даними з зовнішнім середовищем, то для доступу до його значення використовуються спеціальні методи класу. Тому зазвичай властивість визначається трьома елементами: полем і двома методами, що здійснюють його читання/запис:

type
TAnObject = class(TObject)
function GetColor: TSomeType;
procedure SetColor(ANewValue: TSomeType);
property AColor: TSomeType read GetColor write SetColor;
end;

У даному прикладі доступ до значення властивості AColor здійснюється через виклики методів GetColor і SetColor.

 



Поделиться:


Последнее изменение этой страницы: 2016-08-14; просмотров: 327; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.191.157.186 (0.01 с.)