Крок 3. Вивчення властивостей форми

1. Усі властивості активних (виділеними маркерами) компонентів відображаються в Інспекторі об’єктів (Object Inspector). Для активізації компонента на ньому треба натиснути ліву кнопку миші. Натисніть ліву кнопку миші на редакторі форм, потім на кнопках і простежить, як змінюються значення властивостей в Інспекторі об’єктів.

2. Активізуйте редактор форм. Встановіть у властивості ActiveControl компонент (Button1 чи Button2), що буде активним (одержить фокус) при запуску додатка. Запустіть додаток і вивчіть можливості властивості ActiveControl.

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

4. Встановіть властивість AutoScroll у true і, змінюючи розміри форми, простежте за появою на формі смуг прокручування. Вивчіть можливі опції вертикальних і горизонтальних смуг прокручування на формі, що надають властивості +HorzScrollBar, +VertScrollBar. Подвійне натискання лівої кнопки миші на знаку «+» розкриває список властивостей для управління смугами.

Змініть крок скролінга Increment, установіть властивість Tracking (переміщення компонентів у процесі скролінга) в true, простежте за зміною властивості Position у процесі прокручування.

5. Вивчіть можливі стилі кнопок рядка заголовка форми. Для цього розкрийте список +BorderIconsі установіть значення властивостей у true чи false. Враховуйте, що стиль змінюється тільки після перекомпіляції додатка.

· Виключіть системне меню та кнопки (для цього властивість biSystemMenu установіть в false). Запустіть додаток і вивчіть його властивості.

· Включіть властивість biSystemMenu і виключіть при цьому кнопки мінімізації і максимізації (biMinimize і biMaximize). Запустіть додаток і вивчіть його властивості.

· Включіть кнопку допомоги biHelp. Запустіть додаток і вивчіть його властивості.

· Поверніть рядку заголовка форми початковий вигляд.

6. Вивчіть можливі стилі окантовки форми (BorderStyle). Стиль змінюється тільки після перекомпіляції додатка.

· Створіть діалогове вікно (bsDialog). Спробуйте змінити його місцеположення і розміри.

· Створіть вікно з невидимою окантовкою (bsNone).

· Вивчіть інші властивості і поверніть формі початковий стиль (bsSizeable – стандартна форма, розміри якої можна змінювати).

7. Використовуючи Інспектор об’єктів змініть заголовок форми (властивість Caption, за умовчання, Form1) на Example. Зверніть увагу, що у процесі введення синхронно змінюється заголовок на поверхні форми.

8. Вивчіть взаємозв’язок властивостей ClientHeight, ClientWidth і Height, Widthпри зміні розмірів форми. ClientHeight, ClientWidth – висота і ширина використовуваної (робочої) області форми (без врахування окантовки, рядка заголовка і меню). Встановіть, яке значення (у пікселях) має товщина окантовки форми.

9. Простежте за зміною властивостей Left, Top при зміні місця розташування форми на Робочому столі. Те ж зробіть для компонентів Button1 і Button2 – їх місцеположення відраховується щодо лівого верхнього кута форми (для цього треба відключити пункт Lock Controls меню Edit).

10. Змініть колір форми (властивість Color), вибираючи його зі списку визначених кольорів (clBlackclWhite) та системної палітри (clScrollBarclNone), а також безпосередньо вводячи значення (наприклад, $000000FF, при цьому значення властивості визначиться як clRed). Двічі натисніть ліву кнопку миші на полі введення значень властивості Color і виберіть довільний колір із діалогового вікна Колір.

11. Змініть значення властивості Ctl3D, що визначає тривимірний чи двомірний вигляд форми.

12. Вивчіть можливий вигляд курсору миші над робочою областю форми (властивість Cursor). Вигляд курсору змінюється після перекомпіляції. Після вивчення поверніть курсору форму за умовчання crDefault.

13. Вивчіть можливості заборони використання компонентів – форми і кнопок шляхом встановлення властивості Enabled у false. Після заборони використання форми вивантажити додаток можна натисканням комбінації клавішів Ctrl+F2 (чи кнопки Pause на панелі інструментів Delphi).

14. Вивчіть можливості властивості Font форми. Кнопка з трьома крапками (…) дозволяє викликати діалогове вікно зміни шрифту. Зміна шрифту форми автоматично приводить до зміни шрифтів усіх її компонентів, якщо властивість ParentFont (батьківський шрифт) цих компонентів установлена в true. Вивчіть способи використання батьківського шрифту.

15. Змініть стиль форми (FormStyle) таким чином, щоб вона завжди залишалася поверх усіх вікон інших додатків (fsStayOnTop). Поверніть стилю початкове значення (fsNormal).

16. Введіть у поле значень властивості Hint рядок повідомлення, що з’являється у випадку затримки курсору миші над формою (наприклад, рядок Це головна форма додатка). Властивість ShowHint треба встановити в true. Таке повідомлення можна задати для кожного компонента форми, що має властивість Hint.

17. Зчитайте значок (властивість Icon), що буде відображатися у рядку заголовка форми. Для цього треба натиснути кнопку «…» властивості Icon, а потім кнопку Load Icon і завантажити іконку з папки \Program Files\ Common Files\ Borland Shared\ Images\ Icons. Додаток може складатися з декількох форм, при цьому для кожної форми можна вибрати окрему іконку.

18. Змініть властивість Name форми (за умовчання, Form1) на Window, натисніть Enter і простежте, як ім’я змінної Form1 автоматично змінилося в тексті коду на Window. Зокрема, опис змінної типу форма є таким: Window: TWindow; Змінювати властивість Name треба завжди за допомогою інспектора об’єктів – це дозволяє уникнути помилок при перейменуванні.

19. Вивчіть властивість Position, що визначає розмір і місцеположення форми при її відображенні після запуску (poDesigned – форма відображається на тому ж місці, що і при розробленні, poDefault – розміщається відповідно до алгоритму Z-упорядкування). Установіть властивість Position у poScreenCenter, після чого форма буде відображатися строго у центрі екрану.

20. Вивчіть властивість WindowState. Ця властивість визначає стан форми при запуску додатка. Може мати значення wsMinimized, wsMaximized, wsNormal (згорнута, розгорнута, має нормальний розмір).

Контрольні питання

1. Як змінити розміри компонентів і їх розташування на формі? Як вирівняти розміри і координати компонентів? Як включити режим прив’язки до сітки? Як заборонити зміну місця розташування і розмірів компонентів?

2. Як задати компонент, що буде активним (одержить фокус) при запуску додатка? Як змінити порядок табуляції компонентів?

3. Як візуалізувати смуги прокручування? Як настроїти смуги?

4. Як виключити системне меню форми? Як виключити (зробити неактивними) кнопки мінімізації і максимізації? Як включити кнопку допомоги?

5. Як заборонити зміну розмірів вікна? Як створити вікно з невидимою окантовкою?

6. У чому відмінність між властивостями Caption і Name компонента?

7. У чому відмінність між розмірами ClientHeight, ClientWidth і Height, Width? Назвіть початок відліку координат для форми і розташованих на ній компонентів.

8. Назвіть можливі способи зміни кольору форми. У чому особливість використання системної палітри кольорів Windows? Що таке модель RGB?

9. Як заборонити можливість використання компонентів? Які особливості заборонених для використання компонентів?

10. Як змінити шрифт форми і всіх розташованих на ній компонентів? Як змінити шрифт окремого компонента?

11. Як змусити форму завжди залишалася поверх усіх вікон?

12. Як задати рядок повідомлення, що з’являється у випадку затримки курсору миші над компонентом форми?

13. Як зчитати іконку, що буде використовуватися у рядку заголовка форми?

14. Як визначити розмір і місцеположення форми при її першому відображенні на екрані?

15. Як задати стан форми (згорнута, розгорнута, нормальний розмір)?


Лабораторна робота № 3

Тема:Створення найпростіших додатків Windows.

Мета: Ознайомитись із технологією створення додатків Windows на прикладі програми для переведення кута, вираженого в градусах, у радіани.

Практичні завдання

1. Запустіть Delphi і створіть новий проект.

2. Розмістіть на формі кнопку Button із палітри Standard.

Зверніть увагу, що в опис класу форми (у модулі Unit1) додався запис:

Button: TButton;

Що означає опис змінної Button типу TButton (кнопка).

3. Використовуючи інспектор об’єктів, змініть ім’я (властивість Name) кнопки на Ok і натисніть Enter.

При цьому автоматично зміниться на Ok і заголовок (властивість Caption) кнопки, а опис змінної у класі форми стане таким:

Ok: TButton;

4. Виділіть кнопку Ok (натисканням лівої кнопки миші чи використовуючи інспектор об’єктів) – при цьому навколо кнопки з’являться маркери.

Змініть розмір кнопки на 100х50 (при створенні вона мала стандартний розмір 75х25).

Примітка. Змінити розміри компонентів можна як за допомогою інспектора об’єктів (властивості Width і Height), так і використовуючи маніпулятор миша. Комбінація клавішів Shift+стрілки змінює розмір компонента на 1 піксель.

5. В інспекторі об’єктів знайдіть властивість Font і натисніть поруч із ним кнопку з трьома точками (…), яка розкриє діалогове вікно вибору шрифту для заголовка кнопки. Проекспериментуйте з можливими шрифтами, навчіться змінювати гарнітуру, розмір, накреслення та атрибути шрифту.

6. Збережіть проект в особистій папці. Запустіть додаток і вивчіть його властивості.

7. Установіть новий вигляд курсору миші (властивість Cursor), що буде відображатися над поверхнею кнопки. Для цього змініть значення властивості Cursor на crHandPoint (покажчик у вигляді руки).

Запустіть додаток і вивчіть його властивості.

Щоб переглянути всі можливі види курсорів, що надає середовище Delphi, натисніть ліву кнопку миші на властивості Cursor в інспекторі об’єктів і натисніть F1.

8. Задайте рядок повідомлення, що буде з’являтися при затримці курсору миші над кнопкою. Текст рядка введіть у поле властивості Hint(наприклад, Це підказка), а властивість ShowHint (показувати підказку) встановіть в true.

Запустіть додаток і вивчіть його властивості.

9. Розташуйте на формі два компоненти Edit – однорядкові поля редагування (вкладка Standard). Зверніть увагу, що в опис класу форми додалися рядки:

Edit1: TEdit;

Edit2: TEdit;

10. Найбільш важливою властивістю компонентів Edit є Text – текст, що відображається у полі редагування (спочатку, Edit1 і Edit2). Зітріть рядки Edit1 і Edit2 з полів значень властивості Text в Інспекторі об’єктів і запустіть додаток.

11. Створимо програму для переведення кута, вираженого в градусах, у радіани.

Значення кута в градусах будемо вводити у поле редагування Edit1, при натисканні кнопки Ok результат буде розраховуватися і відображатися у полі Edit2.

12. Створіть процедуру оброблення натискання на кнопку Ok (оброблювач створюється автоматично при подвійному натисканні лівої кнопки миші на кнопці Ok або на події OnClick в інспекторі об’єктів):

procedure TForm1.OkClick(Sender: TObject);

Begin

End;

Опишемо змінні x – цілого, y – дійсного, s – рядкового типу.

procedure TForm1.OkClick(Sender: TObject);

Var x: Integer;

y: Real;

s : String;

Begin

End;

З поля Edit1 візьмемо текст Text і трансформуємо його у цілочислове значення за допомогою стандартної функції StrToInt:

x := StrToInt(Edit1.Text);

Переведемо аргумент x у радіани, для чого помножимо його на 6.28/360:

y := 6.28/360*x;

Занесемо значення y в рядок s (запис y:5:5 дозволяє задати ширину поля символів):

str(y:5:5 , S);

І, нарешті, рядок s занесемо в Edit2.Text:

Edit2.Text := s;

Цілком процедура для переведення значень має такий вид:

procedure TForm1.OkClick(Sender: TObject);

Var x: Integer;

y: Real;

s : String;

Begin

x := StrToInt(Edit1.Text);

y := 6.28/360*x;

str(y:5:5, S);

Edit2.Text := s;

End;

Запустіть додаток і вивчіть його властивості.

Примітка. Якщо у поле Edit1 ввести некоректні дані, чи взагалі залишити його порожнім, то при натисканні на кнопку Ok генерується помилка і середовище Delphi переходить у покроковий режим налагодження (вихід із якого здійснюється комбінацією клавішів Ctrl+F2).

13. Створимо процедуру оброблення помилок, для чого скористаємося стандартною процедурою ShowMessage(‘Рядок символів’); що виводить на екран системне повідомлення.

При натисканні на кнопку Ok здійснюється перевірка, чи було у поле Edit1.Text введене значення, якщо ні, то викликається процедура ShowMessage(‘Введіть значення’); інакше здійснюються підрахунки:

If Edit1.Text = ’’ Then ShowMessage(‘Введіть значення’)

else begin

x := StrToInt(Edit1.Text);

y := 6.28/360*x;

str(y:5:5, S);

Edit2.Text := s;

end;

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

Процедура оброблення події натискання на символьну клавішу (OnKeyPress) у полі Edit1 має такий вид (оброблювач створюється подвійним натисканням лівої кнопки миші на події OnKeyPress в Інспекторі об’єктів):

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);

Begin

 

End;

Примітка. Змінна Key визначає символ натиснутої клавіші, причому цей параметр переданий за посиланням (var Key: Char). Таким чином, якщо присвоїти Key:=#0; то значення Key стане нульовим і у поле Edit1 символ виведений не буде.

15. При запуску додатка активною є кнопка Ok, бо вона була розташована на формі першою. Щоб при запуску було активним поле введенняEdit1, необхідно вибрати зі списку властивості Active Controlформи Form1компонент Edit1. Зробіть цю операцію і перегляньте результати роботи.

16. Перехід між компонентами форми працюючого додатка здійснюється натисканням клавіші Tab.

Порядок обходу компонентів наступний: поле Edit1, поле Edit2, кнопка Ok. Установити порядок табуляції можна за допомогою контекстного меню Tab Order (меню викликається натисканням правої кнопки миші над поверхнею форми).

Щоб видалити компонент зі списку обходу клавішею Tab, необхідно встановити властивість TabStop у false (цю властивість мають усі розташовані на формі візуальні компоненти). Зробіть це для компонента Edit2.

17. Створення інтерфейсу потребує виведення на форму надписів, що пояснюють функції компонентів. Для цього використовують компоненти Label і StaticText, у заголовки яких (властивість Caption) вносять необхідні пояснення.

Розмістіть над полями Edit1 і Edit2 мітки Label1 і Label2, в які внесіть рядки: Значення кута в градусах, Значення кута в радіанах.

Використовуючи властивості Color і Font, зробіть вигляд форми естетичним.

18. Запустіть додаток і вивчіть його властивості.

Контрольні питання

1. Як змінити ім’я компонента? У чому відмінність між іменем і заголовком компонента?

2. Які існують способи зміни розмірів компонентів?

3. Які властивості містить у собі шрифт? Як змінити параметри шрифту компонента?

4. Як змінити вигляд курсору миші, що буде відображатися над поверхнею компонента?

5. Як установити підказку, що буде з’являтися при затримці курсору миші над компонентом?

6. Як використовується компонент Edit?Якайого основна властивість?

7. Яка стандартна функція трансформує рядок у ціле значення?

8. Назвіть процедуру для виведення системного повідомлення.

9. Поясніть значення параметра Key для процедури оброблення події OnKeyPress.

10. Як установити компонент, що буде активним при запуску додатка?

11. Як здійснюється перехід між компонентами форми? Як змінити порядок обходу компонентів? Як виключити компонент зі списку обходу?

12. Як вивести на форму надписи, що пояснюють функції компонентів?


Лабораторна робота № 4

Тема: Створення одновіконного текстового редактора.

Мета:Ознайомитись із технологією розроблення одновіконного інтерфейсу SDI (Single Document Interface) Windows у процесі розроблення текстового редактора.

Практичні завдання