>
2.1 Компоненти використані для створення програми
Для створення програми були використані компоненти, які не видно на інтерфейсі, тобто були приховані, але все ж активні. Наприклад, один з трьох компонентів maskedit, по ідеї він ніби суміщений з іншим компонентом maskedit т.к. без нього звіт часу не пішов би, довелося б писати інший код для правильної роботи програми.
Компонент Delphi MaskEdit (Шаблон введення) розташований на сторінці Additional Палітри компонентів. Він так само, як і компонент Edit , є однорядковим редактором. Але на додачу до властивостями і функцій компонента Edit, MaskEdit дає додаткову можливість введення тексту за заданим шаблоном.
За допомогою шаблону можна контролювати число символів, що вводяться, обмежити тип даних, що вводяться (цифри, букви, службові символи). Можна додавати додаткові символи (роздільники при введенні номера телефону, дати, часу та ін. За допомогою шаблону зручно вводити поштові індекси, телефони, дати, тобто таку інформацію для якої визначений свій формат.
Шаблон (маска) задається за допомогою властивості EditMask і складається з трьох полів розділених між собою символами крапка з комою. У першому полі перебувати сам шаблон (маска). Друге поле визначає, чи увійдуть допоміжні символи в підсумковий текст (за замовчуванням 1). Якщо стоїть 0, то вони не будуть в підсумковому результаті, а видно на дисплеї при редагуванні. Будь інший символ дозволяє таке включення. Третє поле відповідає за виведення незаповнених (порожніх) символів в полі введення (за замовчуванням це символ підкреслення). Прі не заданих значеннях другого і третього полів, діють значення за замовчуванням.
У компонентах Edit і MaskEdit вводиться і виводиться текст міститься у властивості Text . Це властивість можна встановлювати в процесі проектування або задавати програмно. Вирівнювання тексту, як це мало місце в мітках і панелях, неможливо. Перенесення рядків теж неможливий. Текст, що не міститься по довжині у вікно, просто зсувається, і користувач може переміщатися по ньому за допомогою курсору. Властивість AutoSize у вікнах редагування має сенс, відмінний від сенсу аналогічного властивості міток: автоматично підлаштовується під розмір тексту тільки висота, але не ширина вікна.
Вікна редагування забезпечені багатьма функціями, властивими більшості редакторів. Наприклад, в них передбачені типові комбінації «гарячих» клавіш: Ctrl-C - копіювання виділеного тексту в буфер обміну Clipboard (команда Copy), Ctrl-X - вирізання виділеного тексту в буфер Clipboard (команда Cut), Ctrl-V - вставка тексту з буфераClipboard у позицію курсору (команда Paste), Ctrl-Z - скасування останньої команди редагування. Правда, користувачі часто не здогадуються про ці можливості редагування. Так що корисно нагадувати їм про це відповідними підказками.
Властивість AutoSelect визначає, чи буде автоматично виділятися весь текст при передачі фокусу у вікно редагування. Його має сенс ставити рівним true у випадках, коли при перемиканні в дане вікно користувач буде швидше замінювати поточний текст, ніж виправляти його. Є також властивості тільки часу виконання SelLength , SelStart , SelText , що визначають відповідно довжину виділеного тексту, позицію перед першим символом виділеного тексту і сам виділений текст. Наприклад, якщо у вікні є текст «виділення тексту» і в ньому користувач виділив слово «тексту», то SelLength =6, SelStart =10 та SelText = тексту raquo ;. Якщо виділеного тексту немає, то властивість SelStart просто визначає поточне положення курсору.
Вікна редагування можна використовувати і просто як компоненти відображення тексту. Для цього треба встановити в true їх властивість ReadOnly і доцільно встановити AutoSelect в false . У цьому випадку користувач не зможе змінювати відображається текст, і вікно редагування стає подібним матюками, розглянутим в розділі 3.3.2 lt; # justify gt; A: integer;
try :=StrToInt (Edit1.Text);
... {оператори, що використовують змінну А}
except on EConvertError do ('Ви ввели помилкове число;
повторіть введення ');
Цей код забезпечує повідомлення користувачу про помилку введення і запобіга...