Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОПІ_Лекції_зошит4.docx
Скачиваний:
1
Добавлен:
20.08.2019
Размер:
244.78 Кб
Скачать

Укладач Чемолосова а.В.

З МІСТ

ЗМІСТ 2

Лекція 18. Створення компонентів під час виконання програми 3

Лекція 19. Меню та панелі в стилі XP 6

Лекція 29. Сервери автоматизації 9

Лекція 21. Експорт інформації в MS Word 11

Лекція 22. Експорт інформації в MS Excel 15

Лекція 18. Створення компонентів під час виконання програми

Робота з візуальним побудовником зручна й проста, однак інколи на етапі розробки програми невідомо, які саме компоненти повинні бути створені. Для таких випадків передбачена можливість створення компонентів під час виконання програми.

Основі дії при створенні компонентів

Створення компоненту без візуального побудовника аналогічне створенню екземпляру якого-небудь класу, оскільки кожний компонент є класом. Для того, щоб компонент став частиною спільної структури програми, від повинен задовольняти таким вимогам:

  • Для кожного компоненту повинна бути встановлена властивість приналежності – посилання на який-небудь компонент (компонент-володар), який несе відповідальність за знищення даного компоненту при знищенні самого себе.

  • Для візуальних компонентів повинна бути встановлена властивість візуальної приналежності – повивання на компонент-контейнер (компонент-батько)

Посилання на компонент-володар передається в якості параметру під час виклику конструктора компоненту.

Наприклад, створення компоненту Timer може виглядати наступним чином:

………

Var MyTimer: TTimer;

………

begin

………

MyTimer:= TTimer.Create(Panel1);

………

В даному фрагменті програми здійснюється створення екземпляра компоненту MyTimer. Відповідальність за його нищення покладена на компонент Panel1. Отже, під час виклику методу Free компонента Panel1 спочатку буде автоматично викликаний метод Free для компоненту MyTimer.

Слід зауважити, що в якості посилання на компонент-володар може бути передане значення nil (порожнє посилання), яке буде коректно сприйняте конструктором компонента. В цьому разі, програма, що створила компонент, повинна самостійно знищити його за допомогою виклику методу Free перед закриттям або при відсутності необхідності його подальшого використання:

………

Var MyTimer: TTimer;

………

begin

………

MyTimer:= TTimer.Create(nil);

………

MyTimer.Free;

………

При створенні компонентів за допомогою візуального побудовника модуль, в якому описаний доданий на формі компонент, автоматично додається в розділ Uses інтерфейсної частини модуля форми. Для створення та використання компоненту без візуального побудовника посилання на модуль слід вказати вручну.

Створення візуальних компонентів

Процес створення візуальних компонентів повинен містити в собі ще один додатковий крок, крім встановлення властивості приналежності – визначення компонента, який є контейнером (візуальним володарем) для створюваного компонента. Посилання на контейнер вноситься в property-властивість Parent.

Присвоєння посилання даній властивості автоматично переміщує компонент з одного контейнера в другий. Наприклад,

………

Var MyLabel: TLabel;

………

begin

………

MyLabel:= TLabel.Create(nil);

………

MyLabel.Parent:=Panel1;

………

Ще однією суттєвою особливістю створення візуальних компонентів є необхідність налаштування властивостей, що керують розташуванням компоненту, його розмірами та іншими властивостями, які визначають представлення елементу керування на екрані. Такі дії виконують звичайним чином, за допомогою зміни значень відповідних властивостей компонентів. Наприклад,

………

Var MyLabel: TLabel;

………

begin

………

MyLabel:= TLabel.Create(nil);

………

MyLabel.Parent:=Panel1;

MyLabel.left:=20;

MyLabel.Top:=5;

MyLabel.Width:=100;

MyLabel.Height:=30;

MyLabel.Caption:=’Новий надпис’;

………

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]