Введення
Поняття компонента є фундаментальним для Delphi. Без компонентів всі переваги візуальної розробки додатку зникають і говорити стає нема про що. Тому зберіть всі сили і уважно прочитайте цей розділ, намагаючись засвоїти не тільки формальну сторону питання, а й саму суть поняття компонента. p align="justify"> Існує два погляди на компоненти.
Погляд зовні, точніше - з візуального середовища розробки. З цієї точки зору компоненти - це самодостатні будівельні блоки, які ви берете з Палітри Компонентів і переносите на форму для створення власне програми. Приклади компонентів вам відомі: це кнопки, мітки, рядки редакторів і т. д.
Існує ще й погляд зсередини, тобто погляд з програми на мові Object Pascal. З цієї точки зору компоненти - це класи, породжені прямо або побічно від класу TComponent і мають опубліковані (published) властивості. Примірники компонентів - це об'єкти цих класів, існуючі в якості полів форми. Серед опублікованих властивостей компонентів обов'язково присутній ім'я (Name), під яким примірник компонента представляється в інспектор об'єктів. p align="justify"> Об'єднання цих двох точок зору дає цілісне уявлення про те, що таке компоненти. При роботі з компонентами з візуального середовища ви завжди бачите їх лицьову сторону. Однак як тільки ви починаєте писати обробники подій і керувати компонентами програмно, ви стикаєтеся з програмною стороною компонентів, суть якої - об'єкти. Таким чином, Delphi забезпечує симбіоз візуального та об'єктно-орієнтованого програмування. p align="justify"> При аналізі структури компонента виявляється, що його природа Трійкова і найкраще описується формулою:
Компонент = стан (властивості) + дії (методи) + зворотні зв'язки (події)
Стан компонента описується його властивостями. Властивості - це атрибути компонента, які визначають, як компонент відображається на екрані і як функціонує. Властивості бувають змінювані (для читання і запису) і незмінні (тільки для читання). Залежно від часу установки властивості поділяються на властивості часу проектування (design time) і властивості часу виконання (run-time). Перші встановлюються для кожного компонента в інспектор об'єктів і визначають початковий стан компонента. Під час виконання програми ці властивості можуть бути змінені операторами програми, відповідно зміниться вигляд і поведінка компонента. Друга група - це властивості, які не відображені у вікні Інспектора Об'єктів і управляти якими можна тільки з програми. З точки зору мови Object Pascal суть відмінності між властивостями часу проектування і властивостями часу виконання зовсім проста - перші оголошені в своєму класі в секції published, а другі - в секції public. p align="justify"> Дії, що виконуються компонентом, - це його методи. Виклики методів компонента поміщаються у вихідний код...