Зміст
Вступ. 2
Опис компонентів Delphi, використаних при розробці проекту. 5
Опис програми-додатку. 9
Список дій користувача. 9
Алгоритм роботи програми. 10
Структура програми-додатку (форма та їх ієрархія)12
Опис графічного інтерфейсу. 13
Додатки. 15
Програмний код програми-додатку. 15
Вигляд форм програми додатку. 21
Вигляд форм програми-додатку (виконавчої)27
Вигляд форм програми-додатку (виконавчої)28
Інтерес до програмування з кожним днем росте. Це пов’язане з розвитком і внесенням в повсякденне життя інформаційних технологій. Якщо людина має роботу пов’язану з комп’ютером, то рано чи пізно в неї виникає бажання, а іноді і необхідність навчитися програмувати.
Серед користувачів персональним комп’ютером в наш час найбільш популярним є сімейство операційних систем Windows, яка була розроблена Borland C++ for Windows, явно орієнтований для професіоналів, які мають серйозні знання і досвід.
Бурхливий розвиток обчислювальної техніки і потрібність в ефективних середовищах розробки програмного забезпечення привели до появи системи програмування, орієнтованих на так названому «швидку розробку», серед яких можна виділити Borland Delphi і Microsoft Visual Basic. В основі системи швидкої розробки лежить технологія візуального проектування і програмування, суть якого заклечається в тому, що середовище розробки бере на себе більшу частину генерації коду програми залишаючи програмісту роботу по конструювання діалогових вікон і функцій обробки подій.
Delphi – це середовище візуального програмування. Програма, створена користувачем у Delphі, називається проектом.
Після запуску середовища (Windows Пуск / Програми; клацніть на піктограмі Borland Delphi ).
Після завантаження ІСР Delphi появляється загальне вікно, в якому містяться наступні вікна та панелі:
· Панель з назвою програми та проекту;
· Панель головного меню;
· 2 інструментальні панелі:
зліва – 2 рядки швидких кнопок ( дубль команд головного меню;
справа – палітра компонентів бібліотека візуальних компонентів;
· основне поле вікна:
зліва – вікна Object Tree View ( Дерево Об’єктів – зображає зв'язок між об’єктами) та вікно Object Inspector ( Інспектор Об’єктів – інструмент для задання властивостей і обробників подій );
справа – вікно пустої форми (зверху) т вікно редакторів кодів (знизу).
Головне меню
вміщає великий набір команд для доступу до функцій Delphi.
Панель інструментів
знаходиться під головним меню в лівій частині вікна і вміщає п'ятнадцять кнопок для виклику головного меню.
Панель компонентів
знаходиться під головним меню в правій частині головного вікна і вміщає багато компонентів, розміщених формах. До числа основних закладок палітри компонентів можна віднести такі:
· Standard
· Additional
· Win32
· System
· DataAccess
· Dialogs
· Samples
Компоненти вставляють у форму методом клацання мишею спочатку на його піктограмі, а потім у точці вставляння на формі. Потрібні властивості компонентів надають за допомогою інспектора об’єктів або шляхом програмування.
Мовою програмування в Delphi є обєктно-орієнтована мова Pascal. Деякі задачі, що потребують аналізу чи перетворення даних, можна розв’язати без застосування програмування, але у загальному випадку без складання програми не обійтися. Програма має вигляд набору програм-процедур, які об’єднані у модуль користувача з назвою unit1.pas. Коли конструювання розв’зку закінчено, Delphi-проект запускають на виконання командою Run і отримують на екрані створену користувачем форму, на якій відображаються результати. Закривши вікно форми, знову переходять у режим конструювання розв’язку. Після виходу з середовища на диск будуть записані два основні файли: Unit.pas та Project.dpr, а також декілька допоміжних файлів.
Отже суть візуального програмування програмування полягає в конструюванні розв’язку поставленої задачі методом встановлення компонентів (візуальних заготовок) у форму, наданні їм відповідних властивостей і в застосуванні їм відповідних властивостей і в застосуванні чи створенні потрібних для розвязку задачі методів.
Основний принцип – це принцип візуального конструювання розвязку за допомогою компонент. Світ можна моделювати реальний світ за допомогою об’єктів. Об’єкти (компоненти) характеризуються властивостями, які можуть набувати певних значень, і методами, що застосовують до них.
Об’єкти описуються структурою даних типу запису. Вхідні дані у візуальному програмуванні прийнято опрацьовувати не відразу, як це було після запуску на виконання традиційних паскаль-програм, а лише після натискання на відповідну піктограму. Натиснення на кнопку – це подія. Реакція на подію полягає у виконанні деякої процедури (методу), яку складає користувач. Тому кажуть, що об’єкт-кнопка володіє певним методом, який активізується у результаті натискання події.
Опис компонентів Delphi, використаних при розробці проекту
Форма
(Form)володіє властивостями вікна Windows. На формі розташовують усі нші компоненти ( елементи керування ), такі як кнопки, текстові поля, малюнки, списки. Форма має власний набір властивостей: заголовок(Caption), назву (Name), колір (Color), розміри (Height - висота, Widht - ширина), відступ від лівої межі екрана до форми (Left), відступ від верхньої межі (Top), шруфт (Font). BorderStyle – можливість змінювати чи не змінювати розмір вікна форми на етапі виконання програми. Розміри компонента і відступи задаються пікселями.
TBitBtn
(знаходиться на закладці Additional
) – ця кнопка крім звичайного тексту може мати ще й зображення. Компонент TBitBtn добре підходить там, де потрібні Glyph
. Зображення під час проектування завантажується в Glyph
за допомогою редактора, викликуваного з Інспектора Об'єктів. Число піктограм у зображенні відображається автоматично у властивості NumGlyphs
. Властивість компонетту TBitBtn - Kind
визначає тип кнопки. За замовчуванням значення цієї властивості дорівнює bkCustom
- замовлена. Властивість Default
, якщо її встановити в true
, визначає, що натискання користувачем клавіші вводу Enter буде еквівалентно натисканню на дану кнопку, навіть якщо дана кнопка в цей момент не перебуває у фокусі. Правда, якщо в момент натискання Enter у фокусі перебуває інша кнопка, то все-таки спрацює саме кнопка у фокусі. З методів, властивих кнопкам, дуже важливим є Click
. Виконання цього методу рівне клацанню на кнопці на кнопці, тобто викликається подія кнопки OnClick
.
TImage
(знаходиться на закладці Additional
): відображає на формі графічне зображення. типу. Властивість Canvas
дозволяє створювати й редагувати зображення.
Щоб створити на формі або модулі даних зображення, яким управляють інші елементи, треба використати не TImage, а TImageList. Компонент Image має такі основні властивості: AutoSize -
вказує, чи змінюється автоматично розмір компонента; Center -
вказує, чи зображення розміщене по центрі; Picture -
визначає відображуваний графічний об'єкт.
TImageList
(знаходиться на закладці Win32
) – цей компонент появився для централізованого управління картинками. Він представляє собою оболонку для створення і використання колекцій однакових за розмірами і властивостями зображень.
Компонент TimageList має дві властивості Images
і ImageIndex
. Перша вказує на список, а друга на конкретний малюнок в цьому списку. Найпростіше заповнити список за допомогою вміщеного редактора, для цого потрібно двічі клацнути на компоненті або вибрати пункт Image List Editor
в його контекстному меню. Користуватися редакторо дуже просто, але потрібно звернути увагу на одну тонкість. Щойно вибраний малюнок можна відредагувати, якщо змінити його положення відносно відведеного йому прямокутника: Crop
(розміщення починається з точки (0;0)), Stretch
(маштабування) і Center
(центровка). Крім того можна змінити безколірність (Transparent Color).
TToolBar
(знаходиться на закладці Win32
) –
це стандартний елемент управління, який дав початок розвитку панелі інструментів. Компонент ToolBar об’єднав розміщені на нім кнопки і інші елементи управління і централізовано керує ними. Всі кнопки (клас TToolButton) на панелі інструментів мають однаковий розмір і властивості. На кожній кнопці можуть відображатися жва її атрибути – текст заголовок кнопки (властивість Caption
) і малюнок. Текст і малюнки на кнопках можуть бути розміщені оди відносно одного двома способами, в залежності від значення властивості List.
Якщо властивість List
має значення false
(установлене по замовчуванню), то малюнок розміщується зверху, текст знизу. В протилежному випадку ви побачите текст справа від картинки. Якщо в деякій ситуації одна ябо декілька кнопок повинні стати недоступними, для цого можна встановити властивість Enabled
в значенні false.
Компонент TToolBar може стати повноцінною заміною головного меню.
TStatusBar
(знаходиться на закладці Win32
)– роль цього компонента заключається в відображенні різного роду довідкової інформації. Панель стану інкапсульвана в StatusBar. Зазвичай панель стану розміщується в нихній частині вікна. В зв’язку з цим при переносі на форму властивість Align
завжди має значення alBottom. Панель стану можна розділити на різне число самостійних частин. Кожна частина описується об’єктом Tstatus. Колекція всіх таких об’єктів знаходиться в властивості: property Panels: TStatusBar.
Загалом панель стану можна зробити суцільною. Для цого властивість SimplePanel
повинна мати значення true.
В даному випадку текст панелі повинен мати властивість SimpleText.
TDRadioGroup
(знаходиться на закладці Standart
) –
компонент представляє собою стандартну групу переключателів, стан яких залежить від значення поля звязаного набору даних. В полі можна передавати фіксовані значення зв’язані з самостійними переключателями в групі. Якщо значення зв’язаного поля відповідає значенню зв’язаного якого небуть переключателя то він включається. Якщо користувач включає інший переключатель, то зв’язане з переключателем значення заноситься вполе. Можливі значення, на які повинні реагувати переключателі в групі, заносяться в властивість Values
за допомогою спеціфльного редактора в Інспекторі об’єктів ябо програно за допомогою методів класу Tstrings.
Кожному елементу властивості Values
відповідає один переключатель. Властивість Items
містить список пояснюючих надписів для переключателів групи. Якщо для якого небуть переключателя нема заданого значення, але пояснюючий текст, то такий переключатель включається при співпадінні значеня зв’язаного поля з пояснюючим текстом. Таке значення зв’язаного поля є в полі Value.
TMainMenu
(знаходиться на закладці Standard
) - дозволяє конструювати і створювати на формі смугу головного меню. Компонент TMainMenu відображає на формі головне меню. Проектування меню виробляється за допомогою конструктора меню, викликуваного подвійним щигликом на цьому компоненті.
Властивість Caption
позначає напис розділу, властивість Name
- ім'я об'єкта розділу, властивість ShortCut
визначає клавіші швидкого доступу до розділу. Властивість Default
визначає, чи є даний розділ розділом за замовчуванням свого підміню. Для кожного розділу можуть бути встановлені під час проектування або програмно під час виконання властивості Enabled
(доступний) і Visible
(видимий).
TDBMemo
(знаходиться на закладці Standard
) – компонент представляє собою звичайне поле редагування з типом даних Memo
або BLOB.
Основне його багатство – можливістьодночасно переглядати і редагувати декілька рядків змінної довжини. Компонент може відображати тільки рядки, які цілі видно по висоті.
В компоненті можна використовувати буфер обміну при допомозі стандартних властивостей операційної системи.
Для прискорення навігації по наборі даних при відображенні поля типу BLOB
можна використовувати властивість AutoDispley.
При значенні true
будь-яке значення поля автоматично відображується в компоненті. При значенні false
нове значення появляється після подвійного клацання на компоненті або натискання клавіші <ENTER> при активному компоненті.
Метод LoadMemo
використовується автоматично при загрузці значення поля, якщо властивість AutoDispiay
= false.
Поведінка компонента при роботі з досить довгими рядками можна управляти за допомогою властивості WardWrap
. При значенні true
досить довгий рядок зміщується вліво при переміщенні текстового курсора за праву границю компонента. При значенні false
остаток довгого рядка переноситься на новий рядок, при цьому реально новий рядок в даних не створюється.
TDBRichEdit
(знаходиться на закладці Win32
) – компонент має можливості повноцінного текстового редактора для перегляду і зміни текстових даних, які збережені в зв’язаному наборі даних. Поле повинно містити інформацію про форматування тексту. Зовнішньо компонент нічим не відрізняється від поля редагування, в зв’язку з цимпро реалізацію доступу до білбш багатих властивостей редактора через інтерфейс користувача повинен попіклуватися розробник. Для цього можна використати додаткові елементи управління.
За допомогою програми-додатку «Психологічний тест» користувач може:
· Відповісти на запитання, які є актуальними для студентів (учнів).
· Дізнатися про більше про себе та про свою студентську групу (клас).
· Переглянувши інформацію «Про програму» можна дізнатися про програму-додаток та її розробника.
· Переглянувши інформацію «Допомога» можна навчитися користуватися програмою.
· Клацнувши правою кнопкою миші вибрати один з пунктів контекстного меню, що дублює кнопки головного меню.
Алгоритм роботи програми
1 – MainMenu
(закладка Standart)
– це головне меню, згенероване цим компонентом, місце розташування якого на формі є стандартним для програм-додатків для Windows. На цьому компоненті розташовані меню Про програму і Допомога.
2
– ToolBar
(закладка Win32)
– це інструментальна панель, на якій розташовані дві кнопки. Перша кнопка викликає форму Допомога, друга викликає форму Про программу.
3
– RadioGroup
(закладка Standart)
– це компонент призначений для виводу запитань і відповідей психологічного тесту моєї програми-додатку.
4
– Memo
(закладка Standart)
- це багаторядкове вікно редагування для виводу текстової інформації, яка запрошує користувача до роботи.
5
– Image
(закладка Additianol)
– це вікно призначене для відображення інформації у вигляді малюнка.
6
– BitBtn
(закладка Additianol)
- це керуюча кнопка, на поверхні якої розташовувані зображення (піктограми). Кнопка призначена для виводу результату виконання психологічного тесту.
7
-StatusBar
(закладка Win32)
– панель стану, на яку виводиться ім’я розробника програми та назва програми.
Додатки
Заставка
procedure TFZastavka.Timer1Timer(Sender: TObject); // процедура для створення заставки, яка розсувається по формі.
begin
if Im1.Top >20 then
begin
Im1.Top := Im1.Top -1;
Im1.Height := Im1.Height +2;
Im1.Left := Im1.Left -1;
Im1.Width := Im1.Width +2;
end;
end;
procedure TFZastavka.BitBtn1Click(Sender: TObject); \\ закриття форми Zastavka і відкриття форми Test
begin
FTest.Show;
FZastavka.Hide;
end;
end.
Тест
type z=record \\ створення типу даних для виведення відповідей і обрахунку кількості балів.
zaput:string[50];
v1,v2,v3:string [50];
B:array [1..3] of integer;
end;
var Ole:TextFile; \\ створення текстового документу для виведення запитань
i:integer=0;
n:integer;
ZList:array [1..30] of z;
s:string;
Suma:integer=0;
procedure TFTest.N1Click(Sender: TObject); \\ процедура для створення відкриття і закриття модальної форми Про програму;
var F: TFAbout;
begin
Application. CreateForm(TFAbout, F);
F. ShowModal;
F. Free;
end;
procedure TFTest.N3Click(Sender: TObject); \\ процедура для створення, відкриття і закритя модальної форми Допомога
var F: TFDopomoga;
begin
Application. CreateForm(TFDopomoga, F);
F. ShowModal;
F. Free;
end;
procedure TFTest.FormCreate(Sender: TObject); \\ процедура для зчитування запитань з текстового файла Ole
begin
AssignFile(Ole,'f.txt');
Reset (Ole);
while not Eof (Ole) do
begin
inc(i);
readln (Ole,s);
ZList[i].zaput:=s;
readln (Ole,s);
ZList [i].v1:=s;
readln (Ole,s);
ZList [i].v2:=s;
readln (Ole,s);
ZList [i].v3:=s;
readln(OLe,zList[i].b[1],zList[i].b[2],zList[i].b[3]);
end;
n:=i;
end;
procedure TFTest.FormShow(Sender: TObject); \\ процедура для виведення запитання з текстового файла Ole в RadioGroup
var j:integer;
begin
Zap.Items.Clear;
for j:=1 to n do
Zap.Items.Add(ZList[j].zaput);
Zap.ItemIndex:=-1;
end;
procedure TFTest.ZapClick(Sender: TObject); процедура для виведення відповідів з масиву ZList в RadioGroup
var j:integer;
begin
j:=Zap.ItemIndex;
Vid.Items.Clear;
Vid.Items.Add(ZList[j+1].v1);
Vid.Items.Add(ZList[j+1].v2);
Vid.Items.Add(ZList[j+1].v3);
Vid.ItemIndex:=-1;
end;
procedure TFTest.VidClick(Sender: TObject); // знаходження суми отриманих балів
var k:integer;
begin
k:=vid.ItemIndex +1;
Suma:=Suma+ZList[zap.ItemIndex +1].b[k];
end;
procedure TFTest.BitBtn1Click(Sender: TObject); \\ перевірка кількості балів і виведення результату на модальні форми
var F:Tinduv ;
L:TKolekt;
S:TPragmat;
begin
if (Suma>60) and (Suma<190) then
begin
Application. CreateForm(Tinduv, F);
F. ShowModal;
F. Free;
end else
if (Suma>190) and (Suma<280) then
begin
Application. CreateForm(TKolekt,L);
L. ShowModal;
L. Free;
end else
if (Suma>14) and (Suma<60) then
begin
Application. CreateForm(TPragmat,S);
S. ShowModal;
S. Free;
end else Showmessage('Âè ìàáóòü íå â³äïîâ³ëè íà óñ³ çàïèòàííÿ...');
suma:=0;
end;
procedure TFTest.ToolButton1Click(Sender: TObject); \\ виведення інформації допомога з інструментальної програми на модальну форму Допомога
var F: TFDopomoga;
begin
Application. CreateForm(TFDopomoga, F);
F. ShowModal;
F. Free;
end;
procedure TFTest.ToolButton3Click(Sender: TObject); \\ виведення інформації допомога з інструментальної програми на модальну форму Про програму
var F: TFAbout;
begin
Application. CreateForm(TFAbout, F);
F. ShowModal;
F. Free;
end;
procedure TFTest.FormClose(Sender: TObject; var Action: TCloseAction); \\ процедура для завершення програми
begin
Application.Terminate;
end;
end.
Головна форма (Zastavka)
Форма тест ( FTest )
Модальна форма Про програму (FAbout)
Модальна форма Допомога (FDopomoga)
Модальна форма Індивідуальний тип (Induvid)
Модальна форма Колективний тип ( Kolekt )
Модальна форма Прагматичний тип ( Pragmat)
Перелік використаної літератури
1. Петро Дарахвелідзе «Програмування в Delphi7», Санкт-Петербург 2003.
2. Я. М. Глинський «Алгоритмізація і програмування», Львів 2001.
3. М. А. Парижский «Delphi в примерах»
|