Delphi тип TObject – тип базового класу, який є предком усіх інших класів.
System unit
type TObject = class
constructor Create;
...
...
destructor Destroy; virtual;
end;
Тип TObject визначає тип базового класу. Він є найстарішим прабатьком всіх класів – кожен клас, зрештою, отриманий з TObject.
Через це кожен об'єкт успадкував методи TObject.
Методи TObject відносяться до двох категорій – клас та не клас. Коли встановлено ключове слово Class, метод можна викликати і в об'єкті класу, і в класі безпосередньо. Такий статичний метод не може звернутися до жодних полів класу, тому що сам клас не має жодних даних, тільки об'єкти мають дані.
Деякі ключові (статичні) методи Class:
- function ClassName – видає ім'я класу як рядок;
- ClassParent – видає ім'я батька класу;
- ClassInfo – видає Run Time інформацію класу;
- InstanceSize – розмір об'єкта класу в байтах;
- NewInstance – створює новий об'єкт класу.
Деякі ключові методи Object:
- Create – творець порожнього об'єкту;
- Free – викликає Destroy для ненульових об'єктів;
- Destroy – вивільнення пам'яті об'єкта;
- AfterConstruction – викликається після побудови;
- BeforeDestruction – викликається перед руйнуванням.
Тип TObject у Delphi: Використання методів TObject успадкованих у підкласі TForm
begin
// Форму модуля було отримано від TObject.
// Отже, ми можемо використовувати методи TObject:
ShowMessage("Ім'я класу об'єкта Form1 = "+
Form1.ClassName);
ShowMessage("Ім'я батьківського класу об'єкту Form1 = "+
Form1.ClassParent.ClassName);
ShowMessage("Розмір зразка об'єкта Form1 = "+
IntToStr(Form1.InstanceSize));
// І тепер безпосередньо TObject
ShowMessage("Ім'я класу TObject = "+
TObject.ClassName);
ShowMessage("Розмір зразка TObject = "+
IntToStr(TObject.InstanceSize));
end;
Результат
Ім'я класу об'єкта Form1 = TForm1
Ім'я батьківського класу об'єкту Form1 = TForm
Розмір зразка об'єкта Form1 = 764
Ім'я класу TObject = TObject
Розмір зразка TObject = 4
Подібні функції, процедури та команди
Class — починає оголошення типу об'єктного класу.
Printer — повертає посилання до глобального об'єкту Printer.