Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Оголошення власного класу винятків, створення винятку.↑ ⇐ ПредыдущаяСтр 2 из 2 Содержание книги
Поиск на нашем сайте
Програміст може створити власний клас обробки виключень, оголосивши його нащадком Exception або будь-якого іншого стандартного класу (цим іншим найчастіше буває клас EAbort). Оголошення нестандартного класу має сенс тільки тоді, коли вам необхідно навчити програму розпізнавати некоректні набори даних і відповідним чином на них реагувати. var F: TextFile; S: String; k: Integer; begin try Reset(F); // Тут можлива помилка EinOutError // Цикл ввода-контролю-перетворення while not EOF(F) do begin ReadLn(F,S);// тут можлива помилка EinOutError // Перетворимо символи в число k:= StrToInt(S); // Можлива помилка EConvertError if k < 0 then raise EIntCheckError.Create(‘від’ємне число'); if k <= 0 then raise EIntCheckError.Create('He додатнє число'); end; except on E: EIntCheckError do ShowMessage(E.Message); on EInOutError do ShowMessage('Некорректна файлова операція'); on EConvertError do ShowMessage('Помилка в записі числа'); on EIntError do ShowMessage('Помилка перетворення'); end; end; Компоненти як засіб програмування в середовищі Delphi. Компоненти – це об'єкти в традиційному для ООП розумінні, вони не обов'язково мають бути візуалізованими, але, як правило, мають якісь властивості (саме властивості налаштовуються в Інспекторі об'єктів). Важлива особливість проектування програм у середовищі Delphi полягає у запровадженні підходу, який отримав назву Two-Way Tools і який характеризується синхронізацією візуального проектування (на основі дизайнера форм Form Designer та інспектора об'єктів Object Inspector) із класичним ("кодовим") програмуванням, коли код (текст) програми "набирається" у вікні традиційного текстового редактора Editor Window). Традиційні задачі щодо розробки програмного інтерфейсу в середовищі Delphi розв'язуються так: на форму (у програмному проекті вона може бути не обов'язково одна) "переносяться" із палітри компонент потрібні управляючі елементи (кнопки різного призначення, різноманітні списки, рядки редагування тощо) та з використанням інспектора об'єктів проводиться їх налаштування.
Середовище програмування Delphi. Нижче перераховані основні складові частини Delphi: Дизайнер Форм (Form Designer) Вікно Редактора Вихідного Тексту (Editor Window) Палітра Компонент (Component Palette) Інспектор Об'єктів (Object Inspector) Довідник (On-line help) Є, звичайно, й інші важливі складові Delphi, на зразок лінійки інструментів, системного меню і багато інших, потрібні Вам для точного налаштування програми і середовища програмування. Програмісти на Delphi проводять більшість часу перемикаючись між Дизайнером Форм і Вікном Редактора Вихідного Тексту (яке для стислості називають Редактор).Дизайнер Форм спочатку складається з одного порожнього вікна, яке Ви заповнюєте всілякими об'єктами, обраними на Палітрі Компонент. Незважаючи на всю важливість Дизайнера Форм, місцем, де програмісти проводять основний час є Редактор. Логіка є рушійною силою програми і Редактор - те місце, де Ви її "кодуєте". Палітра Компонент (див. рис.3) дозволяє Вам вибрати потрібні об'єкти для розміщення їх на Дизайнері Форм. Для використання Палітри Компонент просто перший раз клацніть мишою на один з об'єктів і потім другий раз - на Дизайнері Форм.
Складові частини проекту. Етапи створення віконної аплікації. Коли ви тільки створюєте новий проект в Delphi, ви відразу ж отримуєте не тільки файл проекту, а й готове до подальшого використання вікно програми. У термінології Delphi це вікно називається формою (form) і являє собою основу, на яку поміщаються всі інші компоненти програми. Ця форма буде називатися Form1, оскільки автоматичне найменування компонент в Delphi проводиться за принципом «назва компонента + порядковий номер». Таким чином, для першого за рахунком компоненту типу Form ми отримаємо назву Form1. Крім того, для компонент, що мають текстові підписи, включаючи ту ж форму, це ж назва використовується для властивості типу Caption або Text. Щоб помістити новий елемент інтерфейсу на поверхню форми, слід вибрати потрібний компонент з палітри, клацнувши по ньому мишкою, а потім клацнути по тому місцю на формі, де цей компонент повинен знаходитися по вашому задуму. Складові частини проекту: 1.Delphi Sourse File 2.Delphi Form 3.Delphi Progect File
Створення та налаштування компоненти на етапі проектування та на етапі виконання. Особливості програмного створення компонент. Важлива особливість проектування програм у середовищі Delphi полягає у запровадженні підходу, який отримав назву Two-Way Tools і який характеризується синхронізацією візу-ального проектування (на основі дизайнера форм Form Designer та інспектора об'єктів Object Inspector) із класичним ("кодовим") програмуванням, коли код (текст) програми "набирається" у вікні традиційного текстового редактора Editor Window). Дійсно, при пере-несенні на порожню форму, наприклад, ком-понента Button буде сформовано текст (у файлі Unit1.pas): unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) Button1: TButton; private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation... end. Тепер у списках можливих обробників для різноманітних подій (Events) для кнопки Button1 чи форми Form1 (це, наприклад, події OnClick, OnDblClick, On Create тощо для Form1 чи OnClick, OnEnter для Button1) буде з'являтись рядок з ідентифікатором MyHandle.
Програмне керування компонентами. Кожен компонент має свої властивості. Керувати ними ми можемо безпосередньо з панелі Object Inspector ще у процесі моделювання нашої аплікації. Але, на щастя, це не єдиний спосіб керувати властивостями компонента, оскільки середовище дозволяє програмне керування компонентами. Всі властивості, які ми задаємо у вкладці дизайну форм можна змінювати программно, наприклад, для компоненти TLabel ми можемо змінити поле Caption, зробивши це так: Label1.Caption:='MyLabelName”, або змінити текст, який міститься у компоненті TEdit: Edit1.Text:=”Input Text Here”. Та зміна інформації, яку несе компонента, не єдині властивості, які ми можемо змінити. Ми можемо редагувати ще позицію компоненти, її розміщення, доступність, розміри, тощо. Так, наприклад, щоб деактивувати компоненту TButton достатньо написати Button1.Enabled:=False, і наша кнопка стане недоступною. Чи, якщо ми хочемо приховати компоненту TMemo: Memo1.Visible:=False. Робити такі операції ми можемо як і у FormCreate, так і у іншій процедурі, яка описує певну подію, це залежить від умов та завдання. Як бачимо, програмне керування компонентами є не більш складне ніж керування з дизайнеру форм, воно широко розповсюджене і набагато простіше.
TForm Стиль форми задається одним з значень наступної властивості: TFormStyle = [fsNormal, fsMDIChild, fsMDIForm, fsStayOnTop]; Набір піктограм в заголовку вікна описується властивістю:
TLabel Для відображення різних написів на формі використовують компонент TLabel. Тексти визначаються значенням їх властивості Caption. Його можна встановлювати в процесі проектування або задавати і змінювати програмно під час виконання програми. Наприклад:
TSpinEdit Компонент TspinEdit призначений для введення/відображення числа. Він являє собою комбінацію спеціалізованого нащадку однорядкового текстового поля TCustonEdit та кнопки TSpinButton. В текстовому полі допустиме введення тільки чисел, а кнопки використовують для зміни числа на деяку фіксовану величину. Властивості: Property EditorEnabled: Boolean – дозволяє/забороняє ручне введення чисел в текстове поле. Property Increment: LongInt – містить число, на яке зміниться властивість Value при натисканні на одній з кнопок TSpinButton. Property MaxValue: LongInt – містить верхню границю діапазону можливих значень Value Property Value: LongInt - містить поточне значення числової величини.
TButton Компонент TButton широко використовується для управління програмою. Пов’язаний з кнопкою алгоритм управління реалізується в обробнику подій OnClick. Властивості компонента: Property Cancel: Boolean – якщо значення true, подія OnClick кнопки виникає при натиску клавіші <Esc>. Property Default: Boolean – якщо значення true, подія OnClick при натиску клавіші <Enter>. Type TModalResult=Low(integer)…High(integer); Property ModelResult: TModalResult – визначає результат, з яким було закрите модальне вікно. Основне з точки зору зовнішнього вигляду властивість кнопки - Caption (напис). У написах кнопок можна передбачати використання клавіш прискореного доступу, виділяючи для цього один із символів напису. Перед символом, який повинен відповідати клавіші прискореного доступу, ставиться символ амперсанта «&». Цей символ не з'являється в написі, а наступний за ним символ виявляється підкресленим. Тоді користувач може замість клацання на кнопці натиснути в будь-який момент клавішу Alt спільно з клавішею виділеного символу.
TBitBtn Всі властивості компоненти button відносяться і до BitBtn. Розглянемо тепер особливості кнопки з піктограмою BitBtn. Зображення на цій кнопці задається властивістю Glyph. Файл зображення для кнопки може містити до чотирьох зображень піктограм розміру 16x16. Саме ліве відповідає відкритій кнопці. Друге ліворуч відповідає недоступній кнопці, коли її властивість Enabled рівне false. Третє зліва зображення використовується при натисканні користувача на кнопку при її включенні. Четверте зліва зображення використовується в кнопках з фіксацією SpeedButton для зображення кнопки в натиснутому стані. Більшість зображень для кнопок використовує дві піктограми. Число піктограм ви можете дізнатися з властивості кнопки NumGlyphs, яке після завантаження зображення покаже вам число піктограм в ній.
TEdit У компонентах Edit і MaskEdit вводиться і виводиться текст міститься у властивості Text. Це властивість можна встановлювати в процесі проектування або задавати програмно. Вирівнювання тексту, як це мало місце в мітках і панелях, неможливо. Перенесення рядків теж неможливий. Текст, не поміщається по довжині у вікно, просто зрушується і користувач може переміщатися по ньому за допомогою курсору. Властивість AutoSize у вікнах редагування має сенс, відмінний від змісту аналогічного властивості міток: автоматично підлаштовується під розмір тексту тільки висота, але не ширина вікна.
TMemo Компонент Memo є вікном редагування багаторядкового тексту. Він так само, як і вікно Edit, забезпечений багатьма функціями, властивими більшості редакторів. У ньому передбачені типові комбінації «гарячих» клавіш: Ctrl-C - копіювання виділеного тексту в буфер обміну "Clipboard" (команда "Copy"), Ctrl-X - вирізання виділеного тексту в буфер "Clipboard" (команда "Cut"), Ctrl -V - вставка тексту з буфера "Clipboard" в позицію курсору (команда "Paste"), Ctrl-Z - скасування останньої команди редагування. У компоненті Memo формат (шрифт, його атрибути, вирівнювання) однаковий для всього тексту і визначається властивістю Font. Властивості: Property Lines: Tstrings – містить рядки тексту. Property ScrollBars: TscrollStyle – визначає наявність в багаторядковому полі полоси прокрутки: ssNone – немає полос, ssHorizontal/ssVertical – є горизонтальна/вертикальна полоса, ssBoth – є обидві полоси. Property Text: String – відображає вміст властивості Lines в вигляді одного довгого рядку, в якій границі окремих рядків визначаються символами EOL. Property WantReturns: Boolean – якщо значення true, натиск на клавішу <Enter> викликає перехід на новий рядок. Property WantTabs: Boolean – якщо значення true, натиск на клавішу <Tab> викликає введення в текст символа табуляції.
TBevel Компонент Tbevel носить оформлювальний характер і призначений для видалення групи елементів чи відокремлення їх один від одного. Вид компонента (прямокутник, рамка, верхня лінія, нижня лінія,ліва лінія, права лінія) визначає наступна властивість: Type TbevelShape=(bsBox, bsFrame, bsTopLine, bsBottomLine, bsLeftLine, bsRightLine); Property shape: TBevelShape; Стиль компонента (втиснутий чи випуклий) визначає наступна властивість: Type TBevelStyle=(bxLowered, bsRaised); Property Style: TBevelStyle;
TShape Компонент Shape тільки умовно може бути віднесений до засобів відображення графічної інформації, оскільки просто є різні геометричні фігури, відповідним чином заштриховані. Основна властивість цього компонента - Shape (форма), що може приймати значення:stRectangle прямокутник,stRoundRect прямокутник з округленими кутами,stEllipse еліпс, Інша істотна властивість компонента - Brush (кисть). Ця властивість є об'єктом типу TBrush, які мають ряд підвластивостей, зокрема: колір (Brush.Color) і стиль (Brush.Style) заливки фігури. Третє зі специфічних властивість компонента Shape - Pen (перо), що визначає стиль ліній.
TPanel Компонент TPanel являє собою контейнер загального призначення. На відміну від компонента TGroupBox, він не має заголовку і тому менш зручний для функціонального групування елементів. З іншої сторони, його властивість Caption відображається в вигляді текстового рядка і може використовуватись для виведення повідомлення. Компонент має розвинуті засоби створення різних ефектів об’ємності за рахунок використаних в ньому двох країв – зовнішньої та внутрішньої. Зовнішній вигляд панелі Panel визначається сукупністю параметрів BevelInner - стиль внутрішньої частини панелі, BevelOuter - стиль зовнішньої частини панелі, BevelWidth - ширина зовнішньої частини панелі, BorderStyle - стиль бордюру, BorderWidth - ширина бордюру. Властивість Property fullRepaint: Boolean – дозволяє/забороняє перемалювання панелі і всіх її дочірніх елементів при зміні її параметрів. Для компоненти оголошено подію OnResiZe, в обробнику якої програміст може передбачити необхідну реакцію на зміну розмірів компоненти.
TListBox Простий список, представлений компонентом ListBox, являє собою прямокутну область, в якій розташовуються його елементи - рядки. Якщо рядків у списку більше, ніж може поміститися у відведеній області, то автоматично з'являється смуга прокрутки. Якщо розглядати методи списку, то основна їхня частина призначена для виконання тих чи інших маніпуляцій над вибраними елементами:ClearSelection - знімає виділення з усіх обраних елементів; CopySelection - копіює вибрані елементи до іншого списку; DeleteSelected - видаляє всі виділені елементи зі списку; SelectAll - виділяє всі елементи в списку.
TComboBox Він цікавий тим, що як би об'єднує в собі відразу 2 компонента - рядок редагування (Edit) і список (ListBox).При роботі з таким елементом інтерфейсу, званим комбінованим, або спадаючим списком, користувач може як вводити власний текст, так і вибирати один з наявних у списку варіантів. Тим самим долається таке обмеження останнього, як неможливість безпосереднього введення тексту.
TGroupBox GroupBox - "контейнер" для компонент. Використовується для об'єднання елементів в окремі області. При переміщенні GroupBox'а всі компоненти, розташовані на ньому, також переміщуються. Для розміщення компонентів в цьому контейнері слід після вибору їх на Палітри компонент клацнути по самому контейнеру (а не за формою, як завжди). У GroupBox можна задати текст заголовка (властивість Caption). Якщо ви будуєте програму, де дозволяєте користувачеві змінювати розмір вікна, треба подбати про те, щоб синхронно з цим змінювалися і розміри GroupBox. властивості Align, Anchors і Constraints дозволяють вирішити цю задачу. TCheckBox Це незалежні перемикачі - прапорці. У VCL прапорець представлений компонентом CheckBox. Він виглядає як невеликий прямокутник з текстовим заголовком, розташованим справа. Якщо ж раптом з'явиться гостра необхідність «розгорнути» прапорець таким чином, щоб текст був ліворуч, то можна встановити властивість Alignment в taLeftJustify. Але найважливішим властивістю прапорця, мабуть, є Checked. Саме воно визначає його стан. Так, якщо прапорець включений (що візуально проявляється як наявність галочки на квадратику), то ця властивість має значення істини, а якщо вимкнений - брехні. Цією властивістю можна управляти програмно, візуально це буде проявлятися як поява або зникнення галочки.
TRadioGroup Почнемо розгляд радіокнопок з компонента RadioGroup - панелі групи радіокнопок. Це панель, яка може містити регулярно розташовані стовпцями і рядками радіокнопки. Напис в лівому верхньому кутку панелі визначається властивістю Caption. А написи кнопок і їх кількість визначаються властивістю Items, які мають тип TStrings. Клацнувши на кнопці з трьома крапками близько цієї властивості у вікні Інспектора Об'єктів, ви потрапите в редактор списків рядків, в ньому ви можете занести написи, які хочете бачити біля кнопок, по одній в рядку. Скільки рядків ви запишете - стільки і буде кнопок.
TTimer Компонент Timer дозволяє задавати в додатку інтервали часу. Таймер знаходить численні застосування: синхронізація мультиплікації, закриття якихось вікон, з якими користувач довгий час не працює, включення зберігача екрану або закриття зв'язків з віддаленим сервером за відсутності дій користувача, регулярний опитування якихось джерел інформації, завдання часу на відповідь у навчальних програмах - все це безліч завдань, в яких потрібно задавати інтервали часу, вирішується за допомогою таймера.
TMainMenu Основна властивість компонента - Items. Його заповнення проводиться за допомогою Конструктора Меню, що викликається подвійним клацанням на компоненті MainMenu або натисканням кнопки з трьома крапками поруч із властивістю Items у вікні Інспектора Об'єктів. TPopupMenu Контекстне меню прив'язане до конкретних компонентів. Воно спливає, якщо в час, коли даний компонент у фокусі, користувач клацне правою кнопкою миші. Зазвичай в контекстне меню включають ті команди головного меню, які в першу чергу можуть знадобитися при роботі з даними компонентом. Контекстного меню відповідає компонент PopupMenu. Оскільки в додатку може бути кілька контекстних меню, то і компонентів PopupMenu може бути декілька. Формування контекстного меню спливаючого проводиться за допомогою Конструктора Меню, що викликається подвійним клацанням на PopupMenu. Звернемо тільки увагу на можливість спрощення цієї роботи. Оскільки розділи контекстного меню зазвичай повторюють деякі розділи вже сформованого головного меню, то можна обійтися копіюванням відповідних розділів. Для цього, увійшовши в Конструктор Меню з компонента PopupMenu, клацніть правою кнопкою миші і з меню виберіть "Select Menu". Вам буде запропоновано діалогове вікно, в якому ви можете перейти в головне меню. У ньому ви можете виділити потрібний вам розділ або. Потім виконайте копіювання їх в буфер обміну, натиснувши клавіші Ctrl-C. Після цього знову клацніть правою кнопкою миші, виберіть команду "Select Menu" і поверніться в контекстне меню. Вкажіть курсором місце, в яке хочете вставити скопійовані розділи, і натисніть клавіші читання з буфера обміну - Ctrl-V. Розділи меню разом з усіма їхніми властивостями будуть скопійовані в створюване вами контекстне меню.
TMenuItem Цей компонент, який є основою системи меню в Delphi, ви не зустрінете в Палітрі компонентів - він входить до складу наявних там компонентів TMainMenu і TPopupMenu.
TToolBar, TToolButton Якщо ви помістите компонент ToolBar на форму, то за замовчуванням він розташується вгорі, оскільки його властивість Align за замовчуванням дорівнює alTop. Якщо ви хочете, щоб панель розташовувалася інакше, встановіть Align = alNone, після чого можете надати панелі будь-яку форму і розташувати її в будь-якому місці. TImageList Компонент ImageList являє собою набір зображень однакових розмірів, на які можна посилатися за індексами, що починається з 0. Цей компонент дозволяє організувати ефективне і економне управління безліччю піктограм і бітових матриць. Він може включати в себе монохромні бітові матриці, що містять маски для відображення прозорості мальованої зображень. Зображення в компонент TImageList можуть бути завантажені в процесі проектування з допомогою редактора списків зображень. Вікно редактора, викликається подвійним клацанням на компоненті TImageList або клацанням правої кнопки миші і вибором команди контекстного меню "ImageList Editor". У вікні редактора списків зображень ви можете додати в списки зображення, користуючись кнопкою "Add", видалити зображення зі списку кнопкою "Delete", очистити весь список кнопкою "Clear". Тільки врахуйте, що розмір всіх зображень у списку повинен бути однаковим. Кожне завантажене в список зображення отримує індекс. Саме на ці індекси згодом ви можете посилатися у відповідних властивостях розділів меню, списків, кнопок і т.д., коли вам треба завантажити в них те чи інше зображення.
TActionList Клацання правою кнопкою миші або клацання на маленькій кнопочки зі стрілкою вниз праві першої швидкої кнопки вікна редагування дозволить вам вибрати одну з команд: "New Action" (нову дію) або "New Standard Action..." (Нове стандартне дію). Перша з них відноситься до введення нового дії будь-якого типу. За замовчуванням ці дії будуть отримувати імена Action1, Action2 і т.д. Друга команда відкриває вікно, в якому ви можете вибрати необхідне вам стандартне дію (або відразу декілька дій). Після цього в правому вікні ("Actions") редактора з'являться імена обраних дій, а в лівому ("Categories") - категорії дій.
|
||||
Последнее изменение этой страницы: 2016-08-14; просмотров: 237; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.22.79.103 (0.015 с.) |