Метод ClassName




















Уражені об'єкти Всі об'єкти.
Призначення Метод ClassName повертає ім'я об'єкта або класу.
Оголошення class function ClassName: string;
Приклад синтаксису
 / / Створити (Create) форму з простою командного кнопкою.
/ / Коли кнопка натискається, заголовок Form1 змінюється
/ / На "TButton"
procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.Caption := Button1.ClassName;
end;
Опис ClassName повертає рядок, що містить назву реального типу
поточного об'єкта. У наведеному прикладі Button1 має тип TButton
і така назва, що повертається ClassName. Якщо ви породжує новий тип
від іншого типу і потім використовуєте ClassName, Функція поверне назву
нового типу. Необхідність у знанні назви класу об'єкта виникає рідко. Для
визначення типу об'єкту (на відміну від назви його типу) використовуйте оператор
is, Який обговорювався в розділі 2, "Основи VCL".

Метод ClassParent



















Уражені об'єкти Всі об'єкти.
Призначення Метод ClassParent повертає батьківський клас об'єкта або
класу.
Оголошення class function ClassParent: TClass;
Приклад синтаксису
procedure TForm1.Button1Click(Sender: TObject);
var
/ / Створити змінну типу TCIass
MyParent: TClass;
begin
/ / Спочатку привласнити тип класу Buttoni
/ / Змінної MyParent
MyParent := Button1.ClassType;
/ / Потім використовувати ClassParent для визначення
/ / Батьківського класу MyParent
MyParent := MyParent.ClassParent;
/ / Нарешті, вивести рядок з ClassName
Form1.Caption := MyParent.ClassName;
end;
Опис ClassParent повертає безпосередній предок поточного класу.
Тип, що повертається ClassParent є TCIass, Який представляє
собою прямого нащадка TObject і в основному є тим же, що і
TObject, Оскільки не додає ніякої функціональності до базового
класу. Зазвичай ClassParent використовується для визначення того, чи можна
поточний об'єкт законно привласнити іншому об'єкту. TObject.ClassParent
поверне Nil з огляду на те, що оскільки TObject не має
батьківського класу. Програмісту застосування чи компонентів рідко доводиться
викликати ClassParent, Хоча внутрішньо ClassParent і використовується
операторами is і as, І методом InheritsFrom (Описаним
нижче).

Метод ClassType



















Уражені об'єкти Всі об'єкти.
Призначення Метод ClassType повертає тип класу об'єкта.
Оголошення function ClassType: TCIass;
Приклад синтаксису
 / / Коли натискається кнопка, заголовок
/ / TForm1 змінюється на "TButton"
procedure TForm1.Button1.Click(Sender: TObject);
begin
Form1.Caption := Button1.ClassType.ClassName;
end;
Опис ClassType повертає дійсний тип об'єкта, а не просто його ім'я,
як це робить ClassName. На відміну від ClassInfo, ClassName
і ClassParent, ClassType оперує об'єктами (екземплярами
класу), а не класами (типами об'єктів). ClassType повертає
інформацію, подібну повертається оператором is. Фактично оператори
is і as самі викликають
ClassType.

Метод Create



















Уражені об'єкти Всі об'єкти.
Призначення Метод Create є конструктором в Object Pascal.
Оголошення constructor Create;
Приклад синтаксису
 / / При створенні форми динамічно соадаег новий
/ / Об'єкт і друкує в заголовку
/ / Форми тип класу нового об'єкта, TObject.
procedure TFonnI.FonnCreate (Sender: TObject);
var
MyObject: TObject;
begin
MyObject := TObject.Create;
Form1.Caption := MyObject.ClassType.ClassName;
end;
Опис Create застосовується для конструювання об'єкта за допомогою
розподілу для нього пам'яті та ініціалізації всіх даних об'єкта Create
розподіляє і ініціалізує пам'ять, необхідну конструйованому об'єкту.

Кожен клас в VCL перекриває або повторно реалізує Create тим чи
іншим чином. Об'єкти, примірники яких отримані Create, Повинні
руйнуватися допомогою Free.

Метод Destroy


















Уражені об'єкти Всі об'єкти.
Призначення Метод Destroy використовується для руйнування об'єкта,
Оголошення destructor Destroy;
Опис Destroy є деструкцією Delphi. Він використовується для руйнування об'єкта
та звільнення пам'яті, яка була розподілена об'єкту. Destroy викликається
методом Free, що представляє собою функцію, яку слід викликати для
руйнування об'єктів, сконструйованих Create.

Метод Free



















Уражені об'єкти Всі об'єкти.
Призначення Метод Free використовується для руйнування об'єкта.
Оголошення procedure Free;
Приклад синтаксису / / Зруйнувати об'єкт Anobject
Anobject. Free;
Опис Якщо ви створили об'єкт, то для руйнування об'єкта та звільнення
розподіленої пам'яті слід використовувати Free. Free гарантує
успішну роботу навіть тоді, коли об'єкт є NIL, Тому
Free слід завжди застосовувати замість Destroy. Насправді
Free викликає Destroy, Якщо руйнується об'єкт відмінний від
NIL.

Метод InheritsFrom

























Уражені об'єкти Всі об'єкти.
Призначення Метод InheritsFrom визначає, породжений чи об'єкт від об'єкта іншого
типу.
Оголошення class function lnheritsFrom(ACIass: TCIass): Boolean;
Параметри
AClass Параметр може бути будь-яким класовим типом.
Приклад синтаксису
 / / Оскільки TButton є нащадком TWinControl,
/ / Даний обробник події змінить заголовок
/ / Форми
procedure TFonnl.ButtonlClick(Sender: TObject);
begin
if (Sender. lnheritsFrom(TWinControl)) then
Form1.Caption:=”TButton descends from TWinControl”;
end;
Опис InheritsFrom повертає True, Якщо тип об'єкта, зазначений
параметром AClass,
є предком об'єкта. Якщо об'єкт не
походить від типу, зазначеного AClass,
метод повертає
False.
Оператори is і as внутрішньо використовують
InheritsFrom.

Метод
InstanceSize















Уражені об'єкти Всі об'єкти.
Призначення Метод InstanceSize повертає кількість пам'яті, розподілене
кожного примірника об'єкта заданого типу.
Оголошення class function InstanceSize: Word;
Опис InstanceSize повертає кількість байт, необхідну для розміщення
кожного примірника об'єкта, який викликає метод InstanceSize. Це
внутрішня функція і зазвичай розробниками не застосовується. Замість неї
використовуйте функцію sizeof;
ButtonSize := sizeof (Buttoni);

InstanceSize не є віртуальною, тому її не можна перекрити.

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*