Облаштування екранної форми
У цьому розділі ми дізнаємося, як розміщувати елементи управління в екранній формі, як вимірюються відстані всередині неї. Дізнаємося, що таке "клас", і навіщо він потрібен. Познайомимося з Палітрою елементів і Обозревателем об'єктів.
Стандартні елементи управління
Ми вже знаємо, що додаток будується з об'єктів. А звідки беруться для цього об'єкти? Для об'єктів - елементів управління відповідь відома: з Палітри елементів. Як ми вже бачили, це інструментальне вікно складається з вкладки (її ім'я General - Головна), на якій вже розміщені значки 20 елементів управління, які називаються стандартними. Але до них ми можемо додавати і безліч інших елементів управління: частина з них має в своєму складі IDE, частина - це компоненти, що входять до складу інших додатків.
Як додавати ці елементи - ми дізнаємося після. А зараз наведемо курсор миші на який-небудь значок елемента з Палітри. На екрані з'являється Вікно покажчика, в якому можна прочитати назву елемента (рис. 1):
Щоб навчитися використовувати наявний у нас в наявності "будівельний матеріал", давайте спочатку навчимося дізнаватися його "в обличчя", - тобто знати, який значок представляє той чи інший елемент в палітрі. Для цього, розтягнувши Палітру елементів, підпишемо у кожного з них його англійська назва і російський еквівалент (рис. 2):
Відразу скажемо, що деякі елементи ми будемо називати переважно англійськими іменами, деякі - в обох варіантах. Головне - швидше навчитися розуміти, про що йде мова.
Розміщення елемента управління в екранній формі
Є два способи розміщення елемента в екранній формі.
Спосіб 1. Робимо подвійне клацання по значку елемента управління в палітрі. Елемент розміщується в середині екранної форми, маючи деякі "стандартні" розміри. Після цього, за допомогою миші елемент переміщують в потрібне місце і надають йому потрібні геометричні розміри. Як це робиться?
Переміщення елемента проводиться методом перетягування (Drag-and-Drop): ми вказуємо покажчиком миші на об'єкт, натискаючи ліву кнопку миші, "схоплює" його і, не відпускаючи натиснуту кнопку, переміщаємо об'єкт в потрібне місце (рис. 3):
При цьому, як видно з малюнка, в постає при русі Вікні покажчика відображаються поточні значення координат елемента в екранній формі. А такими вважаються координати його лівого верхнього кута. В яких одиницях вони виражаються? Свого часу дізнаємося, а поки скажемо так: у різних.
Зміна розмірів встановленого елемента роблять за допомогою восьми темних квадратних маркерів. примикають до виділеного елементу (рис. 4):
Підведений до такого маркера покажчик миші приймає фому двобічної стрілки, що вказує напрямки можливого зсуву містить цей маркер кордону елемента. При цьому також з'являється вікно покажчика, в якому відображаються його поточні координати.
Надалі всі зміни в розташуванні і розмірах розміщеного в екранній формі елемента робляться так само, як це описано в першому способі.
Звернення до властивостей і методів
Розмістивши який-небудь елемент управління в екранній формі, ми можемо потім розмістити ще один такий же елемент, потім ще один і так далі (рис. 5):
Всі ці елементи будуть об'єктами одного типу. різниця буде тільки в значеннях деяких властивостей. Наприклад, імена (властивість Name) у всіх цих елементів повинні бути різними. А ось написи на розміщених кнопках (властивість Caption - Заголовок) можуть бути і однаковими.
Після того як елемент розміщений, до його властивостей або методів можна звертатися з будь-якого місця модуля містить його екранної форми. Для цього треба написати ім'я об'єкта, а потім, через точку (вона називається, за своєю роллю, навігаційної), ім'я його властивості. наприклад:
Command1.Caption = "Вихід" 'Привласнили значення властивості Caption
Command1.SetFocus 'Викликали метод SetFocus
А якщо ми звертаємося з модуля інший екранної форми, ніж та, в якій розміщений елемент, то треба вказати і ім'я містить елемент форми:
Form1.Command1.Move 200 'Викликали метод Move з параметром
Об'єкт як клас і як екземпляр
Заглянемо в вікно властивостей (рис. 6):
Виявляється, при його попередньому описі ми дечого "не помітили". А саме: в рядку верхнього списку є не тільки ім'я обраного елемента управління Command3, але і друге ім'я - CommandButton. Якраз те, яким іменувався цей елемент управління в палітрі елементів. Таке ж "подвійне" найменування можна виявити і в інших елементів управління. Та й взагалі у всіх об'єктів.
Це явище пояснюється тим, що поняття "об'єкт" має два значення. З одного боку, це цілий клас - прямо як в зоології. А з іншого строни - це і окремі екземпляри цього класу. Нічого дивного: ми адже називаємо "таксою" і породу собак, і конкретний "екземпляр" цієї породи, що живе у сусідів по сходовому майданчику! Але у "екземпляра" цього є ще й своє власне ім'я - Герда, наприклад.
Отже, говорячи про "об'єкті", ми в одних випадках маємо на увазі клас. в інших - екземпляр. Наприклад, якщо ми говоримо, що у об'єкта Label (Напис) є властивість BorderStyle (Тип кордону), - ми говоримо про клас. Але якщо говоримо, що властивість BorderStyle написи має значення 1, то мова йде про екземпляр. размещаемом на формі.
оглядач об'єктів
І клас об'єкта, і його екземпляр є код і дані. Але клас - це шаблон. заготовка. За допомогою засобів інтегрованої середовища і засобів мови програмування ми створюємо на основі цього шаблону в додатку будь-яку кількість екземплярів об'єкта, що відрізняються значеннями своїх властивостей. При цьому вихідний клас залишається незмінним.
Для цих цілей в IDE є спеціальне інструментальне вікно - Object Browser (Оглядач об'єктів). Його можна викликати в будь-який момент натисненням на клавішу F2 (рис. 7):
У вікні Обозревателя об'єктів є два основних елементи: список класів і список членів (Members) обраного класу: властивостей, методів, подій (а також іменованих констант - незмінних величин, до яких звертаються по імені). Значки перед іменами членів класу позначають:
На Панелі опису можна прочитати короткий опис обраного в даний момент в якомусь з цих списків елемента, а повну довідку про нього можна отримати, натиснувши клавішу F1.
Коли вікна закривають огляд
Для виклику Вікна властивостей, вікна Form Layout, Провідника проекту і Обозревателя об'єктів на стандартній панелі інструментів є інструментальні кнопки, що дублюють відповідні команди з меню, що випадає пункту View головного меню (рис. 8):
У тому ж меню вказані і відповідні клавіші швидкого виклику. Тому, абсолютно спокійно закривайте ці вікна, коли вони вам заважають, і відкривайте, коли вони знову знадобляться!
Відстані всередині форми
Ми вже згадували про "координатах лівого верхнього кута елемента управління", розміщеного в екранній формі. Саме ці координати і вважаються координатами елемента управління. Що ж вони означають?
Будемо вважати, що координати будь-якої точки всередині форми - це два числа. перше з них - відстань від точки до лівої внутрішньої межі форми, його називають Left, друге - відстань від точки до верхньої внутрішньої межі форми, його називають Top. Записувати координати точки прийнято так: (Left, Top). З нашого визначення випливає, що координати верхнього лівого кута внутрішньої області форми рівні (0, 0). Така точка називається початком координат; через неї проводять осі координат - лінії, за якими відкладають відстані (рис. 9):
На цих лініях задається напрямок в сторону зростання координат. Горизонтальна вісь проходить з початку координат - вправо уздовж верхньої сторони; вертикальна вісь - вниз вздовж лівого боку форми. За цим осях і будуть визначатися координати точок вутрі форми. А в яких одиницях?
Одиницею, заданої за замовчуванням, є твіп (Twip). Саме це стандартне значення властивості ScaleMode форми, що визначає її внутрішній масштаб (рис. 10):
Це дуже дрібна одиниця, що відповідає 1/1440 частці дюйма форми, виведеної на папір принтером. Саме в цих одиницях завжди, незалежно від обраної у властивості ScaleMode одиниці виміру, виражається у властивостях Width і Height відповідно ширина і висота самої форми (рис. 9).
Якщо ж ми виберемо іншу одиницю виміру, то ширина і висота форми в цих одиницях буде виражена властивостями форми ScaleWidth і ScaleHeight відповідно.
Особливу роль відіграє значення (0-User) в першому пункті списку значень ScaleMode. Це значення означає вибір "користувальницького масштабу". Щоб перейти до нього, проектувальник встановлює спочатку потрібні розміри форми (протягуванням, або введенням значень властивостей Width і Height). А потім вводить нові, зручні йому значення ширини і висоти форми в властивості ScaleWidth і ScaleHeight відповідно. Властивість ScaleMode автоматично перейде при цьому в значення (0-User), якщо воно не було встановлено заздалегідь. Тим самим вводиться "для користувача" шкала вимірювань для кожної з осей: поділивши на Width на ScaleWidth ми можемо дізнатися масштаб (в твіпах) нової шкали для осі X, поділивши Height на ScaleHeight - масштаб для осі Y. А як забезпечити, щоб горизонтальний і вертикальний масштаби збігалися? Для цього треба при виборі значень ScaleWidth і ScaleHeight простежити, щоб співвідношення між ними було б таким же, як між значеннями Width і Height.
Після установки "користувальницького масштабу" тільки що описаним чином, саме в нових одиницях будуть виражатися координати (Left і Top) і геометричні розміри (Width і Height) усіх розташованих у формі елементів керування. а також координати точок форми, змальованих або перевіряються її графічними методами на етапі виконання програми.
Використання сітки
Ви вже помітили, що вся наша форма покрита точками - вузлами сітки. Коли додаток запущено, сітка пропадає. Її призначення - задавати "опорні точки" для вирівнювання розміщених елементів і точної підгонки їх розмірів. Для полегшення вирівнювання елемент управління за замовчуванням "притягується" своїми лівої і верхньої сторонами до найближчих рядах вертикальних і горизонтальних вузлів відповідно. Ця властивість може бути відключено, а крок сітки - змінений в налаштуваннях.
Викличемо діалог Tools => Options і виберемо в ньому вкладку General (рис. 11):
На ній є група елементів, що її названо Form Grid Settings. З їх допомогою ми можемо:
• змінювати крок сітки (відстань між її вузлами в твіпах) по горизонталі (Width) і вертикалі (Height);
• вмикати або вимикати відображення сітки (прапорець Show Grid);
• вмикати або вимикати вирівнювання по сітці (Align Controls to Grid).
Навіть якщо функція вирівнювання відключена, обраний елемент може бути в подальшому вирівняний по сітці командою Format => Align => to Grid.