Ознайомлення із середовищем візуального програмування Delphi та компонентами для вводу-виводу даних.

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2007
Тип роботи:
Інструкція та методичні настанови
Предмет:
Застосування засобів об’єктно-орієнтованого програмування у лінгвістичних задачах

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА” Ознайомлення із середовищем візуального програмування Delphi та компонентами для вводу-виводу даних ІНСТРУКЦІЯ до лабораторної роботи №2 з курсу “Застосування засобів об’єктно-орієнтованого програмування в лінгвістичних задачах” спеціальності 07.030505 “Прикладна лінгвістика”. ЗАТВЕРДЖЕНО На засіданні кафедри “Системи Автоматизованого проектування” Протокол №___ від _________ Львів - 2007 Ознайомлення із середовищем візуального програмування Delphi. Інструкція до лабораторної роботи №2 з курсу “Застосування засобів об’єктно-орієнтованого програмування в лінгвістичних задачах” спеціальності 07.030505 “Прикладна лінгвістика”. Укл. Д.В. Корпильов. Львів НУЛП, 2007. Укладач: Д.В. Корпильов, асистент. Відповідальний за випуск С.П. Ткаченко, к.т.н., доцент Рецензенти І.І. Мотика, к.т.н., доцент Мета роботи: Познайомитися із середовищем візуального програмування Delphi і одержати практичні навички роботи в цьому середовищі. Основний зміст Створити найпростіший додаток для виводу тексту. Теоретичні відомості. Що таке Delphi? Delphi – це програмне середовище візуального програмування і створення як додатків клієнт/сервер, так і загальних додатків для Windows. Delphi – це система швидкої розробки додатків для Windows, так називана система RAD (Rapid Application Development). Delphi об’днує у єдиному середовищі високопродуктивний компілятор з мовою Object Pascal, візуальні механізми програмування, інструмент створення додатків – клієнтів для роботи з різними локальними і вилученими базами даних. Основою Delphi є графічне середовище розробки додатків, яке називається інтегрованим середовищем розробки (Integrated Development Environment, IDE ). Delphi, як і всяке сучасне середовище розробки додатків засновані на ООП. В основі Delphi лежить об'єктно – орієнтоване програмування мовою Pascal, що Borland називає Object Pascal. Це доповнена (причому істотно) і змінена версія Borland Pascal 7.0. Основні інструменти Delphi. Після завантаження Delphi на екрані відкриваються чотири вікна IDE: головне вікно, вікно проектувальника форм, вікно редактора коду, вікно інспектора об'єктів. 1.Головне вікно. Головне вікно складається з трьох частин: меню, панелі інструментів і палітри компонентів. IDE містить чотири стандартні панелі інструментів: View, Standard, Debug, Custom. Середовище дозволяє чи додавати видаляти кнопки в панелі інструментів за допомогою команди Customize з локального чи меню панелей інструментів. У палітрі компонентів відображаються компоненти, за допомогою яких користувач створює свої додатки. Піктограми стандартних компонентів Delphi розділені на групи, кожна група розташована на окремій страниці. 2.Проектувальник форм Form Designer. У вікні проектувальника форм відображається форма як візуальний об'єкт. Тут ви визначаєте, як буде виглядати ваш додаток з погляду користувача, і створюєте графічний інтерфейс користувача. Ви вибираєте компоненти з палітри компонентів і перетаскуєте їх у форму, використовуючи мишу для точного розташування і визначення розмірів компонента. Ви можете керувати зовнішнім виглядом і поведінкою компонента за допомогою Object Inspector і Code Editor. Це власне і є візуальне програмування. 3.Інспектор об'єктів Object Inspector. З його допомогою ви можете змінювати властивості компонентів форми і визначати події, на які повинна реагувати чи форма її компоненти. Вікно інспектора об'єктів має двох вкладок: Properties – властивості Events – події 4.Редактор коду Code Editor. У вікні редактора коду ви можете вводити розроблений вами чи код редагувати сгенерированный Delphi код для компонентів розробленої форми. Code Editor використовує технологію вкладок, кожна вкладка відповідає своєму чи модулю файлу. Обробка подій Події – це властивості процедурного типу, призначені для створення користувальницької реакції на ті чи інші вхідні впливи. Усі події в Delphi прийнято іменувати з ”On”. Клацнувши в Інспекторі об'єктів на станиці Events у поле будь-якої події, ви одержите в програмі заготівку методу – оброблювача цієї події. При цьому його ім'я буде складатися з імені поточного компонента й імені події (без “On”), а відноситися він буде до поточного формі. Наприклад, якщо на формі розміщена кнопка (компонент TButton з ім'ям Button1), те заготівка оброблювача події OnClick(щиглик по кнопці) буде мати procedure TForm1.Button1Click(Sender: TObject); begin end; Заготівку оброблювача події OnClick можна також одержати двічі клацнувши по розміщеній на формі кнопці. Оскільки події – це властивості об'єкта, їхнє значення можна змінювати під час виконання програми. Ця можливість називається делегуванням. Форма. Форма в Delphi- це синонім вікна. Будь-яка програма має як мінімум одну форму- вона з'являється на екрані в момент старту програми. Для підключення нової форми до проекту досить звернутися до репозиторию і вибрати потрібний різновид форми. Доступ до репозиторию відкриває опція меню File|New. Крім універсальної порожньої форми Form(сторінка New репозитория) репозиторий містить і спеціалізовані форми. Підключення нової форми до проекту приводить до того, що менеджер проекту розміщає її в списку автоматично створюваних форм(вікно Project Option, сторінка Forms, список Auto-create forms). Для того, щоб форма не створювалася автоматично в момент старту програми, необхідно перенести її в список Available forms. У цьому випадку форма створюється в міру необхідності. У момент старту програми на екрані показується тільки одна – головна форма. Кожне наступне вікно стає видно тільки після виклику його методу Show чи ShowModal. Основний спосіб, використовуваний для закриття форми - це виклик методу procedure Close.e Close. Усередині методу Close у першу чергу викликається метод function CloseQuery:boolean. Для закриття форми необхідно, щоб функція CloseQuery повернула True. Для перевірки на можливість закриття CloseQuery викликає оброблювач події OnCloseQuery:TCloseQueryEvent; TCloseQueryEvent-це процедурний тип: TCloseQueryEvent=procedure(Sender:TObject;Var CanClose:boolean) of object; Ви повинні в оброблювачі події перевірити можливість закриття форми і повернути потрібне значення в параметрі CanClose. Останнім при знищенні форми ініціюється подія OnDestroy:TNotifyEvent; Тут програміст може передбачити необхідні дії, наприклад записати значення у файл. Порядок виконання роботи. У цій роботі ми створимо найпростіше додатки, що містить кнопки і найпростіші компоненти для висновку тексту, а також визначимо деякі оброблювачі подій. Роботу будемо виконувати в три етапи. Етап 1. Створення простого додатка. Розробка нового додатка починається зі створення проекту. Для цього в меню File виберете команду New Application. Delphi створює проект, що містить три файли: Файл проекту *.dpr Файл форми *.dfm Файл модуля *.pas При цьому в проектувальнику форм (Form Designer) Ви побачите нову форму, а в редакторі коду (Code Editor) – заготівку вихідного тексту модуля, що асоційований зі створеною формою. Файл проекту являє собою не більш, ніж вихідний файл Pascal. Program Project1; Uses Forms, Unit ‘in Unit1.pas’{Form1}; {$R*.RES} begin Application.Initialize; Application.CreateForm(TForm1,Form1); Application.Run; end. Переглянути файл проекту можна виконавши команду меню Project|View Sourse, або Ctrl-F12 і вибрати зі списку ім'я файлу проекту. У секції Uses перераховані всі модулі, що входять до складу проекту. У блоці begin ... end після ініціалізації об'єкта додатка Application здійснюється створення форм, що входять до складу проекту. Метод Run здійснює запуск додатків. При додаванні модулів і форм у додаток вони будуть з'являтися в секції Uses файлу проекту. Кожна форма представлена в двох видах: у виді файлу форми з розширенням dfm (представлення вікна Windows - додатка як візуального об'єкта) і модуля форми з раширением pas (Pascal – код форми). Автоматично сгенерированный спочатку код має вид: unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} end. Директива $R використовується для завантаження зовнішнього файлу ресурсів. Файл .dfm містить бінарне представлення створеної за допомогою Form Designer форми. Символ * означає, що ім'я файлу збігається з ім'ям модуля, тобто Unit.dfm. Текстове представлення форми можна одержати за допомогою команди View As Text контекстного меню форми. Крім модуля форми, у програму можуть входити й інші модулі, не зв'язані з формами. Компіляція проекту здійснюється у відповідності зі списком модулів у файлі проекту. Відкомпільований модуль записується у файл із розширенням dcu. У проекті Delphi можуть бути присутнім і іншими файлами. *.res Ресурси (зберігають зображення, рядки для повідомлень, інформацію про версію програми). *.cfg Відкомпільований файл настроювань проекту. *.dof Текстовий файл, у якому зберігаються значення опцій проекту (настроювання компілятора і компоновщика, каталоги і т.д.) *.dsk Текстовий файл настроювань середовища розробки для даного проекту. Збережіть проект у вашому робочому каталозі, виконавши команду меню File|Save Project As. Отже, ми одержали заготовку (прототип) майбутнього додатка. Тепер додамо в додаток кнопку при натисканні якої, буде з'являтися модальне вікно з написом «ПРИВІТ» Для цього зробіть наступне: 1.З палітри компонентів(сторінка Standard) додайте кнопку TButton у форму, виконавши подвійного щиглика на піктограмі кнопки. Delphi автоматично центрує кнопку на формі. 2. Для того щоб розмістити кнопку в потрібному місці, клацніть на компоненті й утримуючи ліву кнопку миші натиснутої, перетягайте при цьому об'єкт у потрібне місце (подібно переміщенню піктограми в Windows). 3. Перейдіть у Object Inspector і з його допомогою зміните заголовок за замовчуванням, що з'являється на кнопці, з Button1 на ОК. Для цього, клацніть на кнопці один раз для одержання підтвердження, що вона обрана. Потім клацніть на властивості Caption у Object Inspector. Після цього наберіть на клавіатурі OK для зміни наявного заголовка. Аналогічно зміните властивість Caption форми Form1. 4. Виконайте подвійне клацання на кнопці, що Ви додали у форму, для того щоб відкрити Code Editor. Саме тут уводяться рядки коду, що наказують необхідні дії програмі, коли хто-небудь клацне на кнопці в запущеній програмі. Знаходячись у Code Editor, у тілі процедури TForm1.Button1Click наберіть між зарезервованими словами begin і end наступні рядки: ShowMessage(‘ПРИВІТ’); Close; Процедура ShowMessage створює стандартне вікно для виводу повідомлень. Метод Close закриває вікно форми, коли ми закриємо модальне вікно, клацнувши на кнопці Ok вікна. Текст модуля. unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); begin ShowMessage (' ПРИВІТ'); Close; end; end. 5. Для компіляції і виконання програми виберіть команду Run з меню Run чи натисніть F9. Тепер Delphi автоматично компілює програму для генерування коду часу виконання (run-time code), необхідного для запуску проекту на виконання. Після того як програма почне працювати, на екрані з'явитися  Клацніть на кнопці ОК, і у Вас з'явитися невелике діалогове вікно з написом ПРИВІТ.  Це діалогове вікно є модальним, а це значить, що поки Ви не клацніть на кнопці ОК і не закриєте модальне вікно, програма далі не виконується. При клацанні на кнопці OK програма завершить своє виконання. Метод Close закриває форму і керування повертається до Delphi. Етап 2. Ускладнимо програму. З цією метою для виводу повідомлення використовуємо компоненту Edit, що представляє собою однорядковий редактор. Для цього зробіть наступне: 1. Виберіть з палітри компонентів(сторінка Standard) компонент Edit і розмістіть його на формі. 2. Перейшовши в Object Inspector, зміните властивість Name об'єкта Edit1 на editHello, а властивість Name об'єкта Button1 на btnHello і властивість Caption на Hello. 3. Вибравши властивість Text об'єкта editHello, очистите рядок вікна вводу/виводу. 4. Властивість ReadOnly об'єкта editHello встановить рівним True. Це дозволить захистити рядок вводу/виводу редактора від змін. 5. Зміните тіло процедури TForm1.btnHelloClick. editHello.Text:=’ПРИВІТ’ ; при виконанні процедури властивості Text об'єкта editHello привласнюється значення ’ПРИВІТ’. Текст модуля. unit Unit2; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) editHello: TEdit; btnHello: TButton; procedure btnHelloClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.btnHelloClick(Sender: TObject); begin editHello.Text:='ПРИВІТ' end; end. Після запуску програми на екрані з'явиться. Якщо Ви клацніть на кнопці Hello,то у Вас з'явиться Для того, щоб завершити програму, необхідно закрити вікно головної форми кнопкою закриття в правому верхньому куті. Етап 3. Ускладнимо програму. Додамо ще дві кнопки - одна з яких (btnGoodBye) буде змінювати текст у рядку editHello на ‘До побачення’, а друга(btnClose) закривати форму, завершуючи тим самим програму.   Для закриття форми визначимо оброблювач події procedure TForm1.btnCloseClick(Sender: TObject); begin Form1.Close; end; При закритті форми можна уточнити, чи дійсно користувач хоче завершити додатку, і у випадку підтвердження закривати форму і завершувати додаток. Для цього в Проектувальнику форм варто активізувати форму, вибрати в Інспекторі об'єктів вкладку Events і двічі клацнути у вікні події OnCloseQuery. Потім визначити оброблювач події в такий спосіб: procedure TForm1.Form1CloseQuery(Sender:TObject;Var CanClose:boolean); begin c end;  Частина ІІ Основний зміст Ми розробимо програму для обчислення коренів квадратного рівняння ax2+bx+c=0 з довільними коефіцієнтами(a≠0). Вивчити і використовувати компоненти TLabel, TEdit, TMemo, TButton. Теоретичні відомості. Мітка - компонент TLabel Сторінка Палітри Компонентів: Standard. Ієрархія: TObject→TPersistent→Component→TControl→TGraphicControl→ TCustomLabel→TLabel Мітки призначені для розміщення на екрані текстової інформації, що містить різні пояснення, назви, заголовки і т.д. Мітки в Delphi є екземплярами класу TLabel. Клас TLabel є нащадком класу TCustomLabel, у якому визначені основні характеристики влучна. Цей клас є безпосереднім нащадком класу TGraphicControl і, отже, реагує тільки на події від миші. Основні властивості: type TAlignment = (taLeftJustify, taRightJustify, taCenter); property Alignment: TAlignment; Властивість обумовлює вирівнювання тексту в компоненті. Воно може приймати наступні значення: taLeftJustify - вирівнювання по лівому краю(за замовчуванням); taRightJustify - вирівнювання по правому краю; taCenter - вирівнювання по центрі. property AutoSize: Boolean; Якщо значення властивості дорівнює True, то буде автоматично змінюватися ширина і висота мітки відповідно до розміщеного в ній текстом. type TTextLayout = (tlTop, tlCenter, tlBottom); property Layout: TTextLayout; Властивість визначає положення тексту мітки по вертикалі: tlTop - розташований у верхній частині; tlCenter - розташований у центрі; tlBottom - розташований унизу. property Transparent: Boolean; Якщо властивість має значення True, то тіло мітки буде прозорим стосовно інших компонентів. За замовчуванням має значення False. property WordWrap: Boolean; Якщо властивість має значення True, то після заповнення поточної рядка буде відбуватися перенос тексту на новий рядок. За замовчуванням має значення False. Для введення багатострічкових написів треба задати AutoSize = False, WordWrap = True і установити придатні розміри мітки. Властивості Alignment і WordWrap не працюють, якщо AutoSize = True. Основним для мітки є властивість Caption, наслідуване від класу TControl. property caption: string; Саме сюди поміщається текст, що буде виводитися на екран. Приклад 1: Вивід значень масиву цілих чисел. Label1.Caption: = IntToStr (a[1]) ; for k:=2 to size do Label 1.Caption:= Label1.Caption + ',' + IntToStr (a[k]); property FocusControl: TWinControl; Містить ім'я віконного компонента, що зв'язаний з міткою акселератором. Т.о. вибір компонента TLabel приведе до переміщення фокуса на зв'язаний з ним компонент. У цьому випадку мітку також можна використовувати, щоб установити фокус у нащадка TWinControl. Щоб виконати це, потрібно установити у властивості FocusControl ім'я відповідного нащадка TWinControl і визначити гарячу клавішу у властивості Caption (& буква). property ShowAccelChar:boolean; Визначає, для чого використовується символ & у властивості Caption: для визначення гарячої чи клавіші просто як символ. Але навіть коли властивість ShowAccelChar = True, можна відобразити амперсенд у caption, подвоївши його - &&. Приклад 2: Щоб вивести рядок "Delphi & Windows", треба присвоїти властивості caption значення Delphi && Windows. Якщо властивість ShowAccelChar = False, властивість FocusControl не працює. Мітка обробляє всі події, зв'язані з використанням миші і перетаскуванням компонентів. Подією за замовчуванням для мітки є подія OnClick. Клас TCustomEdit У Delphi є кілька компонентів, що дозволяють за допомогою клавіатури вводити в програму і редагувати різноманітну символьну інформацію. Усі вони мають такі можливості, як виділення, копіювання, видалення, вставка фрагментів, скролінг тексту, у тому випадку, коли він не уміщається у вікні і т.д. Із усього набору редакторів ми розглянемо рядок уведення класу TEdit і редактор тексту класу TMemo. Більшість стандартних редакторів є нащадками класу TCustomEdit. Клас TCustomEdit, що є нащадком класу TWinControl, містить ряд характеристик, загальних для всіх текстових редакторів. Найбільш важливими є наступні властивості: property AutoSelect: Boolean; Якщо властивість має значення True (значення за замовчуванням), текст буде виділятися при активізації редактора. property AutoSize: Boolean; Якщо властивість має значення True, то буде автоматично змінюватися висота редактора відповідно до розміру шрифту. type TFormBorderStyle = (bsNone, bsSingl, bsSizeable, bsDialog, bsToolWindow, bsSizeToolWin); TBorderStyle = bsNone..bsSingl; property BorderStyle: TBorderStyle; Визначає вид границі редактора: bsSingle - одинарна границя, bsNone - немає границі. За замовчуванням редактор має одинарну границю. type TEditCharCase = (ecNormal, ecUpperCase, ecLowerCase); property CharCase: TEditCharCase; Визначає вид букв тексту: ecUpperCase - прописні, ecLowerCase - рядкові, ecNormal - змішані. property MaxLength: Integer; Визначає максимальне число символів, яке можна помістити в редактор. Якщо значення властивості дорівнює нулю (використовується за замовчуванням), то в редактор можна помістити довільне число символів. property PasswordChar: Char; Задає символ, що буде відображатися замість символів, що реально вводяться, у редакторі. Така поведінка редактора може придатися, якщо в програмі потрібно використання пароля. Якщо значенням властивості є символ з кодом 0 (значення за замовчуванням), то символи, що вводяться, відображаються без перетворення. property ReadOnly: Boolean; Якщо властивість має значення True, то текст призначений тільки для читання, тобто змінювати текст не можна. За замовчуванням має значення False. property MaxLenngth: integer; Указує максимальна кількість символів, який можна ввести. property Modified: Boolean; Установлюється рівним True, якщо текст змінювався після того, як воно останній раз було встановлено рівним False. Хоча основна функція полючи введення -дозволити змінювати текст, його можна використовувати тільки для відображення тексту, установивши властивість ReadOnly рівним True. Однак, замість цього краще установити властивість Enabled рівним False. Текст в елементі керування можна виділити за допомогою чи миші клавіатури. Чи визначити змінити виділений текст можна за допомогою наступних властивостей: property SelLength:integer; Визначає довжину виділеної частини тексту. property SelStart:integer; Визначає початок виділеної частини. property SelText:string; Містить виділений текст. У класі TCustomEdit мається ряд методів, що реалізують функції редагування: procedure Clear; virtual; Видаляє весь текст, поміщений у редактор. procedure ClearSelection; Видаляє виділений фрагмент тексту. procedure CopyToClipboard; Копіює виділений фрагмент тексту в буфер Clipboard. procedure CutToClipboard; Видаляє з тексту виділений фрагмент і поміщає його в буфер Clipboard. procedure PasteFromClipboard; Копіює текст із буфера Clipboard у позицію курсору редактора. procedure SelectAll; Виділяє весь текст, що міститься в редакторі. У більшості редакторів маються убудовані локальні меню, що дозволяють виконувати наступні команди: Undo - скасування останньої виконаної операції в тексті; Cut - вирізувати виділений фрагмент із приміщенням його в буфер обміну; Copy - скопіювати виділений фрагмент у буфер обміну; Paste - помістити фрагмент із буфера обміну в текст у позицію курсору; Delete - видалити виділений фрагмент; SelectAll - виділити весь текст. Однорядковий текстовий редактор - компонентів TEdit Ієрархія: TObject → TPersistent → TComponent → TControl → TWinControl → TCustomMaskEdit→ TCustomEdit→TEdit. Сторінка Палітри Компонентів: Standard. Компонент TEdit, дозволяє вводити і редагувати один рядок тексту. Клас TEdit - безпосередній нащадок класу TCustomEdit і успадковує всі його характеристики. Основною властивістю рядка введення є властивість Text: type TCaption = string; property Text: TCaption; Містить символьний рядок у редакторі Edit. Символьний рядок може бути поміщена у властивість або на етапі конструювання форми, або під час виконання програми. Найчастіше редактор використовується для введення інформації. У цьому випадку на етапі конструювання форми у властивість Text можна помістити порожній рядок, а на етапі виконання програми витягати з нього введені значення. Якщо вводяться символьні представлення числових даних, то надалі вони повинні бути перетворені за допомогою відповідних підпрограм перетворення типу. Оскільки рядок уведення є віконним елементом керування, то вона обробляє всі події від миші і клавіатури, події, зв'язані з перетаскуванням, активізацією і зняттям активізації, а також подія OnChange: property OnChange: TNotifyEvent; Виникає при зміні тексту рядка введення. Є подією за замовчуванням для рядка введення класу TEdit. Приклад 1.Обмеження введення - у рядку редагування дозволяється введення тільки цифр. procedure TForm1.Edit1KeyPress (Sender: TObject; Var Key: char); begin if not (Key in['0'..'9']) then Key:= #27 end; У Delphi реалізований спеціальний компонент TMaskEdit, призначений для введення тексту, що відповідає деякому шаблону, що задається властивістю property EditMask: String. Якщо ця властивість не задана, TMaskEdit працює як звичайний редактор TEdit. Приклад 2.Задається поле, що не може бути порожнім. Подія OnExit відбувається при втраті елементом фокуса. Перевизначимо обработчик procedure TForm1.Edit1Exit (Sender: TObject); begin if length (Edit1.text) < 1 then begin MessageBox (0, 'Поле не може бути порожнім', 'Помилка', mb_ok); ActiveControl:= Edit1; end end; Багатострічковий текстовий редактор - компонентів TMemo Ієрархія: TObject→TPersistent→TComponent→TControl→TWinControl→ TCustomEdit→TCustomMemo→TMemo. Сторінка Палітри Компонентів: Standard. Текстовий редактор TMemo може містити на відміну від рядка введення TEdit не одну, а будь-яке число рядків. Клас TMemo породжений безпосередньо від класу TCustomMemo, у якому визначені основні характеристики багатострічкових текстових редакторів. Дозволяє ввести кілька рядків тексту, кожну з який можна виділити за допомогою масиву рядків- властивості Lines,наприклад ShowMessage (Memo1.Lines [1]); Відзначимо наступні властивості класу TCustomMemo: property Lines: TStrings; Властивість класового типу TStrings. Задає список рядків, поміщених у редактор. Клас TStrings буде розглянутий пізніше. type TScrollStyle = (ssNone, ssHorizontal, ssVertical, ssBoth); property ScrollBars: TScrollStyle; Задає наявність смуг скролінга: ssNone - немає смуг, ssHorizontal - тільки горизонтальна смуга, ssVertical - тільки вертикальна смуга, ssBoth - обидві смуги. property WantReturns: Boolean; Визначає дія клавіші Enter. Якщо властивість дорівнює True, то при натисканні на клавішу Enter відбувається перехід на новий рядок тексту. У противному випадку фокус уведення передається формі, а перехід на новий рядок у тексті здійснюється натисканням комбінації клавіш Ctrl+Enter. property WantTabs:Boolean; Визначає чи обробляє елемент керування TMemo клавішу Tab. Якщо не обробляє (значення False), то обробляється системою. У цьому випадку для обробки треба натиснути Ctrl + Tab. Властивість Text компонента TMemo являє собою рядок, що складається з рядків які знаходяться в полі Memo , розділених послідовністю символів з кодами 13 (кінець рядка) і 10 (перехід на новий рядок). Послідовність цих символів додається в поле Memo при натисканні клавіші <Enter>. Якщо використовувати поле Text, то щоб одержати значення i-ої підстрічки (утримуючої, наприклад, i-ий елемент масиву), треба знайти i-1 символ з кодом 13, пропустити символ з кодом 10 і виділити підстрічку до наступного символу з кодом 13 чи до кінця рядка. Так само, як і рядок уведення Edit, багаттострічковий текстовий редактор Memo обробляє всі події від миші і клавіатури, події, зв'язані з перетаскуванням, активізацією і зняттям активізації, а також подія OnChange, що є подією за замовчуванням. Програма повідомляється про зміни в тексті одним з наступних способів: 1. За допомогою події OnChange. Ця подія викликається, коли текст змінений. Подія викликається після подій OnKeyDown і OnKeyPress, але до OnKeyUp. 2. За допомогою властивості Modified. Приклад 1.Заповнення TMemo вмістом текстового файлу. if FileExists (filename) then Memo1.Lines.LoadFromFile (filename); Приклад 2.Скасування дій у TMemo. Для того, щоб скасувати дії, виконані в редакторі, варто скористатися наступним кодом, що може бути поміщений, наприклад, в оброблювач вибору команди Undo у меню: Memo1.Perform (EM_UNDO, 0, 0); Для того, щоб перевірити, чи можливе скасування зроблених дій, варто скористатися наступною перевіркою: Undo1.Enabled:= Memo1.Perform (EM_CANUNDO, 0, 0) < > 0; Приклад 3.Знайти номер поточної рядка в редакторі. procedure TMyForm.BitBtnClick (Sender: TObject); Var curline: integer; begin curline:= Memo1.Perform (EM_LineFromChar, $FFFF, 0); Label1.Caption: = IntToStr (curline + 1); // номер першого рядка = 0! end; Приклад 4.Вивести масив цілих чисел по одному числу в рядку. Memo1.Lines.clear; for i:= 1 to size do Memo1.Lines.Add (IntToStr (a[I])); Кнопка - компонент TButton Ієрархія: TObject→TPersistent→TComponent→TControl→TWinControl→ TButtonControl. Сторінка Палітри Компонентів: Standard. Основне призначення кнопки - формування події при натисканні на неї. Кнопка може бути розміщена в будь-якім місці форми, де їсти необхідність виконати які-небудь дії при її натисканні. Кнопка Button є екземпляром класу TButton, предками якого є класи TButtonControl і TWinControl. Це означає, що кнопка Button являє собою віконний елемент керування. У класі TButton додані наступні властивості: property Cancel: Boolean; Якщо властивість має значення True, то натискання на клавішу Esc буде еквівалентно натисканню на дану кнопку. property Default: Boolean; Якщо властивість має значення True, то натискання на клавішу Enter буде еквівалентно натисканню на дану кнопку, якщо яка-небудь інша кнопка не знаходиться у фокусі введення. type TModalResult = Low(Integer)..High(Integer); property ModalResult: TModalResult; Властивість, використовувана при закритті модальних вікон. Для звичайних вікон значення цієї властивості повинне бути дорівнює mrNone. У класі TButton визначений метод Сlick: procedure Click; override; Виконання цього методу еквівалентно щиглику по кнопці, тобто в результаті його виконання виникає подія OnClick для кнопки. Особливістю кнопки класу TButton є те, що вона не має властивість Color і колір тла для неї визначається операційною системою Windows. Кнопка класу TButton обробляє всі події, визначені для віконного елемента керування. Подією за замовчуванням для кнопки є подія OnClick. Порядок виконання роботи 1. Відкрити новий додаток за допомогою команди File| New Application. 2. Збережіть проект у вашому робочому каталозі, виконавши команду меню File|Save Project As. 3. На формі Form1 розмістіть компоненти Label1, Label2, Label3, Label4: TLabel; Memo1: TMemo; Edit1, Edit2, Edit3:TEdit; Button1, Button2:TButton.  4. Властивості Caption мітки Label1 задайте значення 'Введіть коефіцієнти квадратного рівняння A*X^2+B*X+C=0’  Розмістіть цей текст у двох рядках і вирівняйте його по центрі, для чого установите наступні значення властивостей: Alignment - taCenter AutoSize - False WordWrap – True  Розміри мітки і її місце розташування відрегулюйте вручну. Перейдіть у властивість Font і клацніть по кнопці з трьома крапками. У вікні, що з'явилося, встановіть придатний розмір і тип шрифту. 5. Для міток Label2, Label3, Label4 установите властивість Caption рівним ‘A=’,’B=’,’C=’ відповідно. 6. Для компонентів Edit1, Edit2, Edit3 установите властивість Text рівним порожньому рядку. 7. Для компонента Memo1 виберіть властивість Lines і клацніть по кнопці з трьома крапками. У вікні, що з'явилося, String list editor видалите рядок 'Memo1'. 8. Для кнопок Button1, Button2 установите властивість Caption рівним ‘Рішення’ і ’Очистити’ відповідно. 9. Двічі клацніть на кнопці ‘Рішення’ і визначите наступний обработчик події OnClick: procedure TForm1.Button1Click(Sender:TObject); var a,b,c,d,x1,x2:double; begin a:=StrToFloat(Edit1.Text); b:=StrToFloat(Edit2.Text); c:=StrToFloat(Edit3.Text); d:=b*b-4*a*c; if d>=0 then begin x1:=(-b+sqrt(d))/(2*a); x2:=(-b-sqrt(d))/(2*a); Memo1.Lines.Add('Результат'); Memo1.Lines.Add(‘x1=’+FloatToStr(x1)); Memo1.Lines.Add(‘x2=’+FloatToStr(x2)); end; if d<0 then Memo1.Lines.Add(‘Рішень немає’); end;  10. Поверніться у форму(F12), двічі клацніть на кнопці ‘Очистити’ і визначите наступний обработчик події OnClick: procedure TForm1.Button2Click(Sender:TObject); begin Memo1.Clear; end; 11.Відкомпілюйте і виконаєте програму.  Додаткові завдання 1. Використовувати для виводу результату замість компонента TMemo компонент TEdit. 2. Розробити програму для обчислення коренів алгебраїчного рівняння виду f(x)=0 методом а) ітерацій; б) Ньютона; в) половинного розподілу. 3. Обчислити значення визначеного інтеграла виду F=∫ydx у межах інтегрування від a до b методом: а) трапецій; б) Симпсона. 4. Обчислити значення заданої функції f(x) для x від a до b із заданим кроком h, використовую розкладання функції в степеневий ряд. Питання для самоперевірки Що таке Delphi? Що таке TLabel? Що таке Tedit? Що таке Tmemo? Що таке Tbutton? Основні інструменти Delphi. Звіт Титульна сторінка. Мета роботи. Теоретичні відомості. Приклад створеної програми. Вихідні результати. Висновок.
Антиботан аватар за замовчуванням

01.01.1970 03:01-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!