Смекни!
smekni.com

Розробка програми-додатку Психологічний тест (стр. 2 из 3)

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); &bsol; закриття форми Zastavka і відкриття форми Test

begin

FTest.Show;

FZastavka.Hide;

end;

end.

Тест

type z=record &bsol; створення типу даних для виведення відповідей і обрахунку кількості балів.

zaput:string[50];

v1,v2,v3:string [50];

B:array [1..3] of integer;

end;

var Ole:TextFile; &bsol; створення текстового документу для виведення запитань

i:integer=0;

n:integer;

ZList:array [1..30] of z;

s:string;

Suma:integer=0;

procedure TFTest.N1Click(Sender: TObject); &bsol; процедура для створення відкриття і закриття модальної форми Про програму;

var F: TFAbout;

begin

Application. CreateForm(TFAbout, F);

F. ShowModal;

F. Free;

end;

procedure TFTest.N3Click(Sender: TObject); &bsol; процедура для створення, відкриття і закритя модальної форми Допомога

var F: TFDopomoga;

begin

Application. CreateForm(TFDopomoga, F);

F. ShowModal;

F. Free;

end;


procedure TFTest.FormCreate(Sender: TObject); &bsol; процедура для зчитування запитань з текстового файла 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); &bsol; процедура для виведення запитання з текстового файла 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); &bsol; перевірка кількості балів і виведення результату на модальні форми

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); &bsol; виведення інформації допомога з інструментальної програми на модальну форму Допомога

var F: TFDopomoga;