Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
samost_pascal_delphi_2012.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
4.33 Mб
Скачать

Зміна властивостей форми

Що таке модуль?. У першому наближенні ми можемо вважати модулем самостійний розділ програми, у чомусь подібний розділу в книзі. Модуль створюється кожного разу, коли ви створюєте нову форму (в програмі може бути і часто буває не одна, а декілька - іноді кілька десятків - форм і пов'язаних з ними модулів). При компіляції програми Delphi створює файли з розширеннями PAS, DFM і DCU для кожного модуля: PAS-файл містить копію тексту з вікна коду програми, у файлі з розширенням DFM зберігається опис вмісту вікна форми, а в DCU-файлі - результат перетворення в машинні інструкції тексту з обох файлів. DCU-файли створюються компілятором і дають необхідну базу для роботи компонувальника, який перетворює їх в єдиний файл завантаження з розширенням ЕХЕ.

Спробуємо модифіковані програму, наприклад, змінимо заголовок її вікна. Отже, простою зміною вмісту рядка у вікні інспектора об'єктів ми домоглися важливої ​​зміни: змінили одну з властивостей вікна програми - Caption - його заголовок. Таким же чином можна змінювати будь-яке інше властивість форми.

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

За допомогою обрамляючих чорних квадратиків можна змінювати розміри компонента. Для цього слід помістити покажчик миші на один з них (в цей момент покажчик змінює свою форму на двонаправлену стрілку), потім натиснути ліву кнопку миші і, не відпускаючи її, буксирувати сторону або кут компонента в потрібному напрямі, після чого відпустити кнопку.

Всі видимі компоненти мають властивості Left (Зліва), Тор (Зверху), Width (Ширина) і Height (Висота), числові значення яких визначають положення лівого верхнього кута компонента і його розміри в так званих пікселах, тобто в мінімальних за розміром точках екрану , світність яких може керувати програма. При буксируванні компонента або зміні його розмірів мишею ці значення автоматично змінюються і навпаки - зміна цих властивостей у вікні інспектора об'єктів призводить до відповідної зміни положення і розмірів компонента. В Delphi 7 значення Left і Тор автоматично з'являються в підказці (невеликому вікні поруч з покажчиком миші) при буксируванні компонента за формою.

Функціональність програми визначається сукупністю її реакцій на ті чи інші події. У зв'язку з цим кожен компонент крім властивостей характеризується також набором подій, на які він може реагувати.

Оброблювач події OnClick

При натисканні на кнопці мишею в працюючій програмі виникає подія OnClick (По клацанню). Поки ця подія ніяк не обробляється програмою і тому клацання на кнопці не призведе ні до яких наслідків. Щоб змусити програму реагувати на клацання, необхідно написати на мові Delphi фрагмент програми, який називається оброблювачем події. Цей фрагмент повинен являти собою послідовність текстових рядків, в яких програміст вказує, що саме має робити програма у відповідь на клацання на кнопці. Фрагмент оформляється у вигляді спеціальної підпрограми мови Delphi - процедури.

Щоб змусити Delphi самостійно зробити заготовку для процедури обробника події Onclick, двічі поспіль без помітної паузи клацніть на знову вставленому компоненті. У відповідь Delphi активізує вікно коду, і ви побачите в ньому такий текстовий фрагмент:

procedure TForml.ButtonlClick(Sender: TObject);

begin

end;

Слово procedure сповіщає компілятор про початок підпрограми-процедури - в Delphi можуть використовуватися також підпрограми-функції; в цьому випадку замість слова procedure (процедура) використовується слово function (функція); різницю між процедурами і функціями ви знаєте. За ним іде ім'я процедури TForml. ButtonlClick. Це ім'я - складене: воно складається з імені класу TForml і власне імені процедури ButtonlClick.

Класами в Delphi називаються функціонально закінчені фрагменти програм, що служать зразками для створення подібних собі примірників. Одного разу створивши клас, програміст може включати його примірники (копії) в різні програми або в різні місця однієї і тієї ж програми. Такий підхід сприяє максимально високої продуктивності програмування за рахунок використання раніше написаних фрагментів програм. До складу Delphi входить кілька сотень класів, створених програмістами корпорації Borland (так званих стандартних класів). Сукупність стандартних класів визначає потужні можливості цієї системи програмування.

Кожен компонент належить до чітко певного класу, а всі конкретні екземпляри компонентів, що вставляються у форму, отримують ім'я класу з доданим числовим індексом. По використовуваному в Delphi угодою всі імена класів починаються з літери Т. Таким чином, ім'я TForml означає ім'я класу, створеного за зразком стандартного класу TForm.

Якщо ви подивитеся початок тексту у вікні коду, то побачите наступні рядки:

type

TForml = class(TForm)

Buttonl: TButton; Labell: TLabel;

procedure ButtonlClick(Sender: TObject);

private

f Private declarations }

public

{ Public declarations }

end;

var

Forml: TForml;

Представлений ​​нижче рядок визначає новий клас TForml: TForml = class (TForm)

Цей клас породжений від (створений за зразком) стандартного класу TForm. А наступний рядок створює екземпляр цього класу з ім'ям Forml:

Forml: TForml;

Стандартний клас TForm описує пусте вікно програми, у той час як клас TForml описує вікно з уже вставленими в нього компонентами мітка і кнопка. Опис цих компонентів містять рядки:

Buttonl: TButton; Labell: TLabel;

Ці рядки вказують, що компонент Buttonl (Кнопка!) являє собою екземпляр стандартного класу TButton, а компонент Labell (Метка1) - екземпляр класу TLabel.

За ім'ям процедури TForml. ButtonlClick в круглих дужках слід опис параметра виклику:

Sender: TObject

Цей опис означає, що параметр з ім'ям Sender належить класу TObject. Як ми побачимо далі, процедури можуть мати не один, а кілька параметрів виклику або не мати їх зовсім. Параметри виклику (якщо вони є) служать для настройки реалізованого в процедурі алгоритму на виконання конкретної роботи. Параметр Sender вставлений Delphi «на всякий випадок»: з його допомогою програміст може, при бажанні, визначити, який саме компонент з'явився джерелом події OnClick.

Весь рядок в цілому називається заголовком процедури:

procedure TForml.ButtonlClick(Sender: TObject);

Її завершує символ крапки з комою (;), який грає важливу роль в Delphi, так як показує компілятору на кінець речення мови. З окремих речень складається весь текст програми. В кінці кожного речення потрібно ставити крапку з комою - це обов'язкова вимога синтаксису мови.

наступні рядки визначають тіло процедури:

begin

end;

Слово begin (початок) сигналізує компілятору про початок послідовності пропозицій, що описують алгоритм роботи процедури, а слово end (кінець) - про кінець цієї послідовності. У нашому випадку тіло процедури поки що не містить опису будь-яких дій, що й не дивно: середовище Delphi лише створило заготівку для процедури, але вона нічого «не знає» про те, для чого ця процедура призначена. Наповнити тіло потрібними пропозиціями - завдання програміста.

Для нас важлива та обставина, що кожен раз при натисканні на кнопці Buttonl управління буде передаватися в тіло процедури, а значить між словами begin і end ми можемо написати фрагмент програми, який буде виконуватися у відповідь на цю подію.

Висновки:

  • Процес створення програми в Delphi розбивається на дві фази: фазу конструювання форми і фазу кодування.

  • Конструювання форми здійснюється шляхом вибору компонентів в палітрі і розміщення їх на формі.

  • Програміст може переміщати будь розміщений на формі компонент і змінювати його розміри за допомогою миші.

  • Щоб надати компоненту потрібні властивості, використовується вкладка Properties інспектора об'єктів.

  • Щоб компонент міг відгукуватися на ту чи іншу подію, програміст повинен створити обробник події і вказати його ім'я на вкладці Events інспектора об'єктів.

  • Обробник події оформляється у вигляді процедури, яка має складене ім'я. Перша частина імені являє собою ім'я класу для форми, друга частина відокремлюється від першої точкою і може бути довільною. Якщо Delphi автоматично формує заготовку для обробника, то друга частина імені являє собою об'єднання імені компонента та імені події без префікса On.

  • Тіло процедури обмежено словами begin і end і складається з окремих пропозицій (операторів) мови Delphi. В кінці кожного речення ставиться крапка з комою.

  • Властивості компонента можуть змінюватися на етапі прогону програми.

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