Усі стандартні кроки щодо створення Windows аплікації описано класами бібліотеки VCL. Для того щоб грамотно використовувати цю бібліотеку необхідно розуміти структуру та сфери відповідальності цих класів.
TObject - базова поведінка; створення;знищення;(function ClassName:shortstring - можна довідатися ім’я класу будь-якого об’єкта; function ClassNameIs(const name:string):Boolean- Перевірити чи є клас в деякому об’єкті
TPersistent - Вміють себе зберігати на диск, вміють взаємодіяти з потоками введення та виведення(procedure Assign(source: TPersistent) - Копіювання об’єктів(значень полів), при чому можна копіювати з різних класів)
TComponent – закладено уміння взаємодіяти з середовищем програмування.
TControl – TgraphicControl;TWinControl – TcustomControl.
Між компонентними класами існує звичне відношення наслідування. Додатково між екземплярами компонентних класів існує відношення власності. Екземпляр компонентного класу – це компонента. 1 компонента може бути власником кількох інших, і кожен компонент може мати 1 власника. Власник відповідає за створення та знищення. Кореневим власником є форма. Якщо у вікні розташовані компоненти-контейнери, то вони виступають власником свого змісту. Власника компоненти задають в аргументі конструктора.
Var mainform:TForm1; button:TButton;
Procedure TForm1.aProc; begin button:=TButton.Create(self).