Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Мал. 4. Діалогове вікно вибору формиСодержание книги
Поиск на нашем сайте
Загальні принципи використання стандартних діалогових вікон До складу Windows входить ряд типових діалогових вікон, таких як вікно відкриття і збереження файлу, вікна вибору шрифту, кольору, настроювання принтера, пошуку і заміни тексту. Робота зі стандартними діалоговими вікнами здійснюється в три етапи. 1. На формі розміщується відповідний компонент із панелі компонентів DIALOGS і здійснюється настроювання його властивостей (сам компонент - діалог невидимий у момент роботи програми, видно лише створюване їм стандартне вікно). Настроювання властивостей може проходити як на етапі конструювання, так і в ході виконання програми. 2. Здійснюється виклик стандартного для діалогів методу Execute, що створює і показує на екрані діалогове вікно. Виклик цього методу розташовується усередині обробника події, що відповідає елементу управління (кнопка, пункт меню і т.д.). Тільки після звертання до Execute на екрані з'являється відповідне діалогове вікно. Вікно діалогу є модальним вікном, тому відразу після звертання до Execute подальше виконання програми припиняється доти, поки користувач не закриє вікно. Оскільки Execute - логічна функція, вона повертає в програму значення True, якщо результат діалогу з користувачем був успішним. Проаналізувавши результат Execute, програма може виконати третій етап 3. Використання введених за допомогою діалогового вікна даних - імені файлу, настроювань принтера, обраного шрифту і т.д. Розробка системи меню ПЗ Компоненти тиу MainMenu Головне меню (компонент MainMenu), знаходиться у стандартній панелі компонентів. При розміщені на формі компонент відображається іконкою, але при додаванні пунктів, головне меню відразу з’явиться вздовж верхнього краю форм. Кожен пункт меню має власні сторінки в вікні ІО (подія OnClick – процедура обробки вибору команди меню). Якщо розмістити на формі компонент MainMenu, а після цього два рази клацнути на полі властивісті Items, або два рази клацнути на піктограмі компонента, то відкриється вікно Menu Designer (Конструктор меню). Створення меню починається з введення назви першого пункту меню. Що б ввести відразу декілька пунктів підменю, потрібно клацнути в полі Caption вікна інспектора об’єктів, клацнути на пустому прямокутнику у нижній частині підменю у вікні конструктора і ввести потрібні заголовки, натискаючи клавішу Enter. Якщо пункти меню поділяються на групи, можна вставити роздільну лінію, якщо ввести в якості заголовка пункту меню значок дефіса “ – “. При проектуванні меню можна змінювати порядок розташування його пунктів, перетягуючи їх мишею, або вставити чи знищити пункт меню через його контекстне меню. Компоненти типу MenuItem Ці компоненти створюються у вікні конструктора меню (пункти підменю). Кожен пункт підменю має власні сторінки в вікні ІО (подія OnClick – процедура обробки вибору команди меню). Важливою властивістю пункту меню є Caption, який інформує користувача, яку дію виконує цей пункт. Якщо заголовок пункту меню складається з символів національного алфавіту, то для властивості Name цього пункту використовуються ідентифікатори N1, N2 і т.д. Властивість ShortCut визначає комбінацію гарячих клавіш. Для визначання комбінації можна скористатися запропонованим списком, або ввести їх вручну. Якщо властивість Checked пункту меню містить значення True, то зліва від заголовку цього пункту з’являється прапорець. Властивість GroupIndex, яка використовується разом з властивістю RadioItem для створення груп пунктів меню, які працюють як перемикачі. Для створення продовження підменю з нового стовпчика („ПУСК”) властивості Break, одного з пунктів можна привласнити значення mbBreak. Якщо підменю перевантажене, використовується каскадне меню. Для цього необхідно з контекстного меню вибраного пункту підменю вибрати команду Create Submenu і продовжувати створення меню. Контекстні меню Майже всі об’єкти Windows мають контекстне або спливаюче меню (PopupMenu). Процес розробки контекстного меню аналогічний створенню головного меню. В ньому можна використовувати вкладені підменю та клавіші швидкого доступу, але робити цього не рекомендується. Для даного типу меню важливими властивостями є: AutoPopup, якщо його значення встановлено в True, то меню буде з’являтися на екрані після клацання по об’єкту правою кнопкою миші, якщо Fals – то ні. Значення властивості Alignment визначає в якому місці відносно курсору миші буде з’являтися меню. Компонент PopupMenu обробляє подію OnPopup безпосередньо перед появленням на екрані. Для присвоєння об’єкту КМ необхідно у властивостях об’єкта PopupMenu вказати назву елемента PopupMenu, що створювався. Наприклад: Наступні процедури задають вирізання, копіювання та вставку даних з поля редагування у буфер обміну: Memo1.CutToClipboard; Memo1.CopyToClipboard; Memo1.PasteFromClipboard; Після чого в оператор uses модуля добавити ClipBrd.
Контрольні питання 1. Які різновиди форм вам відомі? 2. Яка властивість форми визначає її стиль? 3. Наведіть основні властивості форми? 4. Наведіть основні методи роботи з формами? 5. Як підключити нове вікно до додатку? 6. Що таке репозиторій? 7. Наведіть правила використання стандартних вікон діалогу? 8. Як створюється меню вікна? 9. Як створюється контекстне меню? Тема 7.1. Розвинені засоби в середовищі Delphi Управління додатком і екраном. Обробка виключних ситуацій. План 1 APPLICATION 2 SCREEN 3 Опрацювання виняткових ситуацій 4 Приклад обробки виняткових ситуацій
ГЛОБАЛЬНІ ОБ'ЄКТИ І НАСТРОЙКА ПРОГРАМ З будь-якою запущеною програмою автоматично зв'язуються чотири глобальні об'єкти: Application (програма), screen (екран), Printer (принтер) і Clipboard (буфер міжпрограмного обміну). У цьому розділі розглядаються властивості і методи цих об'єктів. Окремий розділ присвячений індивідуальній настройці програм. APPLICATION Об'єкт Application відноситься до класу TAppiication і інкапсулює найважливіші властивості і методи програми як такий. Він створюється автоматично і доступний будь-якій програмі. Об'єкт не поміщений в палітру компонентів, тому його властивості недоступні на етапі конструювання, але стають доступні при прогоні програми[ Деякі властивості програми (зокрема її піктограма, відомості про версію і використовувану мову) можуть встановлюватися за допомогою менеджера проекту (опція project | Options і сторінка Application). ]. Application є посередником між програмою і операційною системою. Зокрема, з його допомогою здійснюється диспетчеризація повідомлень Windows, реалізується контекстно-чутлива довідкова служба, він обробляє клавіші-акселератори, виняткові ситуації і т.д. Нижче описуються деякі властивості Application для додатку Windows (для додатку Linux об'єкт Application декілька відрізняється). Опущені властивості призначені в основному для прямого звернення до API-функцій Windows.
Методи Application:
За допомогою методів HandleException і ProcessMessages програма може тимчасово припинити свою роботу до тих пір, поки не будуть оброблені всі призначені нею повідомлення Windows. Це буває необхідно для оновлення видимих компонентів в процесі відображення тривалого за часом циклу роботи. Якщо, наприклад, програма змінить текст влучні або стан компоненту progressBar, повідомлення про це поступить в чергу повідомлень і залишиться в ній, поки не закінчиться поточна робота. Виклик HandleException або ProcessMessages в цьому випадку дозволить мітці або ProgressBar дійсно відновити свій вигляд і відобразити нову фазу процесу. Різниця між методами HandieException І ProcessMessages полягає в тому, що перший після очищення черги повідомлень викликає обробник фонової події OnIdie, а другою не робить цього. Призначення події onidie див. після опису подій об'єкту Application. За допомогою методу HookMainWindow можна зареєструвати функцію Hook, яка отримуватиме всі адресовані програмі повідомлення windows. За моїми спостереженнями, ця функція отримує Повідомлення Message паралельно з головною віконною функцією Application. ProcessMessage або після неї, оскільки ні зміна повідомлення, ні повертаний функцією Hook результат ніяк не впливають на поведінку програми. Як випливає з вбудованої довідкової служби, як функція Hook повинна реєструватися віконна функція діалогового вікна, створеного не за допомогою Delphi. Якщо ви вирішите використовувати HookMainWindow для спостереження за посиланими програмі повідомленнями, не забудьте перед завершенням програми відключити реєстрацію Hook методом unHookMainwin-dow, інакше завершення роботи програми супроводжуватиметься повідомленням про помилку. Для цілей перехоплення повідомлень і їх можливої зміни слід використовувати обробник Application. OnMessage, який викликається з віконної функції Програми Application. ProcessMessage до виклику методів Trans-lateMessage І DispatchMessage, що реалізовують стандартну обробку повідомлень. У Delphi 5 (і 6) з'явився додатковий зручний засіб перехоплення повідомлень - компонент TApplicationEvents. Для об'єкту Application визначені наступні події:
Подія OnIdie виникає всякий раз, коли програма виявляє, що її черга повідомлень порожня. Обробник цієї події може непомітно для користувача виконати допоміжну роботу, наприклад, перевірити орфографічну правильність тільки що введеного слова або зібрати і обробити статистичні дані. Важливо пам'ятати, що виконувана в обробнику робота не може займати багато часу, інакше програма перестане реагувати на запити користувача. Якщо фонова робота віднімає багато часу, її слід розбити на порівняно невеликі фрагменти або періодично викликати в ній метод HandieMessage. Обробник в параметрі Done повідомляє про необхідність продовжити фонову роботу (Done = False) або 0 її завершенні (Done = True). У першому випадку програма прогляне чергу повідомлень і після її очищення поверне управління обробникові OnIdie. У другому випадку програма чекатиме надходження нових повідомлень. Примітка Подія Onidie введена в Delphi 1 для сумісності з Windows З.х в якій не було багатопоточності; Якщо ви працюєте з Windows 32 і вам дійсно потрібно зробити деяку фонову роботу, має сенс доручити її виконання окремому потоку команд(см.га. 14) Для події ОnShowHint визначені такі типи: type THintInfo = record HintControl: TControl; HintPos: TPoint; HintMaxWidth: Integer; HintColor: TColor; CursorRect: TRect; CursorPos: TPoint; ReshowTimeout: Integer; HideTimeout: Integer; HintStr: String; end; TShowHintEvent = procedure (var HintStr: String; var CanShow: Boolean; var Hintlnfo: THintInfo) of object; У параметрі HintStr обробник отримує текст, який повинен містити ярличок, а в параметрі Hintlnfo - додаткову інформацію, зокрема: HintControl - елемент, для якого виводиться ярличок; HintPos - координати верхнього лівого кута ярличка; HintMaxWidth - максимальна ширина вікна; HintColor - колір вікна; CursorRect - прямокутник, в якому повинен залишатися покажчик миші, щоб з'явився ярличок; CursorPos - поточне положення покажчика миші; ReshowTimeout - затримка в мілісекундах від моменту виникнення події до появи ярличка; HideTimeout - час показу ярличка в мілісекундах. SCREEN Об'єкт screen класу TScrеen інкапсулює властивості і методи, що спрощують роботу з дисплеєм ПК, зокрема з його допомогою оперативно змінюється вид використовуваного програмою покажчика миші. Як правило, програма встановлює покажчик у вигляді пісочного годинника перед початком довгої за часом роботи і відновлює замовчувану форму після її завершення. Для цього використовується властивість Cursor об'єкту Screen: Screen.Cursor:= crHourGlass; // Виконуємо тривалу роботу: .. // Відновлюваний замовчувану срорму: Screen.Cursor:== crDefault; Властивості об'єкту Screen:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2016-09-13; просмотров: 349; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.166.223 (0.008 с.) |