Термінова допомога студентам
Дипломи, курсові, реферати, контрольні...

Програма психотестування

РефератДопомога в написанніДізнатися вартістьмоєї роботи

Завданням. У цьому курсової роботі будуть описані способи створення меню з обома. Психологія — велика наука. Вона дозволяє дізнатися про людину ВСЕ. Для отримання. Найближче до її думки. Наприкінці тесту відповіді аналізуються: кожному варіанту. Варіанти відповідей. У цьому вся модулі розміщені процедури завантаження тестов. Щоб програма реагувала вплинув на вибір пункту меню, треба створити… Читати ще >

Програма психотестування (реферат, курсова, диплом, контрольна)

Разработка програми психотестирования.

Психологія — велика наука. Вона дозволяє дізнатися про людину ВСЕ. Для отримання.

такий інформації використовуються психологічні тести — досліджуваного задаються.

і питання пропонуються варіанти відповідей. Він вибирає той, котрий за змісту.

найближче до її думки. Наприкінці тесту відповіді аналізуються: кожному варіанту.

присвоєно певна кількість балів; вони підраховуються і залежно від.

загального рахунки виходить результат.

Такі методи психологічних досліджень застосовуються досить давно. Однак у століття.

комп’ютерів, і загального доступу до них частіше для тестування стали.

застосовуватися ЕОМ. Спеціалізована програма ставить запитання, приймає відповіді,.

підраховує бали видає результат. У Інтернеті є сайти, де всі.

бажаючі можуть дізнатися ступінь своєї впевненості у собі, агресивності,.

організованості й багато іншого. Такі програми є і для локальних.

ПК, не підключених до жодних сетям.

У цьому курсової роботі представлена система психотестирования SuperPsy,.

розроблена у системі програмування Borland Delphi. У неї входить три тесту,.

відповівши куди, людина має великі довідки про свого характере.

У системі тести не стаціонарні - можна створити файли коїться з іншими тестами і.

користуватися ними. До сформування файлів тестів є дві утилитные програми,.

які теж описані у работе.

Програма має й певні елементи художнього оформлення, це важливо, якщо.

врахувати спеціальність автора — ИПД.

1 Опис программы.

У цьому курсової роботі представлена програма для психотестирования, яка.

містить три тесту; вона створює психологічний портрет людини, який сказав на.

всі питання тестов.

Крім програми для тестування курсова робота включає у собі дві програми.

до створення файлів тестів (все тести, і навіть їх результати, використовувані.

програмою психотестирования, зберігають у окремих файлах, що спрощує.

вдосконалення системи тестирования).

1 Внутрішня структура программы.

Проект Delphi називається SuperPsy. Він має три форми і тільки програмний.

модуль, у якому описано основні користувальні типи і які змінюються,.

використовувані у програмі тестування, соціальній та програмах створення тестів. Усі.

модулі програми наведені у табл. 1. 1.

Таблиця 1.1 Програмні модулі Delphi, складові программуИмя.

модуляФормаФункции, які выполняет.

MainfrmFrmMainЗдесь описано вікно програми, яке бачить користувач.

відразу після його запуску. Розміщені процедури вибору потрібного теста.

TestfrmFrmTestОкно тестування — вікно, у якому виникають запитання і.

варіанти відповідей. У цьому вся модулі розміщені процедури завантаження тестов.

ResfrmFrmResЭто вікно служить висновку результату тестування. Модуль не.

містить важливих процедур.

TestTypesНетВ цьому модулі зібрані типи для описи тестів. Він загальний для.

всіх трьох програм пакета.

1. 1. 1 Збереження інформації теста.

Для зберігання інформації тесту (тексти питань, варіанти відповідей та т. п.).

використовується користувальницький тип TTest:

TTest=record.

text:string[255]; {текст вопроса}.

quest:array[1.3] of string[100]; {варианты}.

count:array[1.3] of byte;{очки за вариант}.

end;

У такій записи зберігається одне питання. Весь тест міститься у масиві записів. При.

збереженні тесту на диску використовується типизированный файл цього.

Програма створення тестів — TestCreator теж використовує цей тип.

1. 2 Збереження інформації для повернення результов теста.

Подібно інформації про тестах, інформація результатів теж зберігається в записах. Тип.

називається TResult:

TResult=record.

min, max: integer;{кол-во баллов}.

text:array[1.1000] of char; {текст результата}.

end;

Подібно питанням, результати зберігаються у масивах; задля збереження на диску.

використовуються типізовані файлы.

1. 3 Опис роботи программы.

На формі frmMain розміщені кнопки SpeedButton, які мають властивість Flat.

встановлено в «істину». Завдяки цьому вони прозорі. Написи, які.

перебувають у цих кнопках, насправді взяті з графічних файлов.

Натискання кожну кнопку викликає відповідний оброблювач події, який, в.

своє чергу, привласнює глобальної перемінної testfilename: string, описаної в.

модулі TestTypes, ім'я файла тесту, і потім запускає процедуру RunTest,.

яка ніколи форму frmTest.

Далі працюють процедури модуля цієї форми. Процедура Load, описана як.

метод, завантажує з файла тесту чергове резонне запитання з варіантами. Оброблювач.

події натискання кнопки «Далі» перевіряє наявність ще питань у файлі у разі.

позитивної відповіді викликає Load, інакше — вантажить з файла.

результатів потрібну запис в Label1 форми виведення результатів frmRes. Після цього.

ховає вікно тестування і результат.

Пристрій програм створення тестів і результатів вже не потребує описании.

1. 1. 4 Інструкція для пользователя.

Виконуваний файл програми називається SuperPsy.еxe. Запустивши його, користувач.

побачить вікно, що запрошує вибрати потрібний тест. Це вікно показано на рис. 1. 1.

Тут, і натомість неба ніби «висять» назви тестів. При русі курсору мишки.

по кнопці, вона піднімається над загальним тлом, як показано на рис. 1.1 Клацнувши.

лівої кнопкою миші, тестований вибирає цікавий для його тест й потрапляє у вікно.

тестування, показане на рис. 1. 2, стор. 10. Щоб питанням,.

досить клацнути на правильному з погляду користувача варіанті відповіді.

(у своїй все варіанти тут-жі заблокуються і став доступною кнопка «Далі»).

Для початку запитання треба натиснути кнопку «Далее».

Малюнок 1. 2 — Вікно тестирования.

3 Створення тестів. Допоміжні программы.

Як було вказано вище, в курсову роботу входять також дві утиліти — для.

створення тестів і результатів до них. Перша називається TestCreator, а друга -.

ResCreator, МС і RC.

3. 1 Створення теста.

Програма МС має єдине (окрім діалогових відкриття і.

збереження файла) вікно. Воно представлене рис. 1. 3, стор. 11.

Малюнок 1. 3 — Вікно програми ТС.

Після запуску замість тексту питання написана рядок «Текст питання», а замість.

варіантів відповідей — «Вариант1 (2,3)». Мишкою можна вибирати «радиобаттон», а.

потім вводити на полі «текст варіанта» потрібний вариант.

3. 2 Створення файла результатов.

І тому призначена утилитная програма RC. (Result Creator). Після запуску.

програмних засобів виводиться вікно, представлене на рис. 1. 4, стор. 12.

Малюнок 1. 4 — Вікно програми Result Creator.

Як очевидно з рис. 1. 4, текст результату вводять у вікні введення типу Memo. У.

верхні спинэдиты поміщається мінімальне і забезпечити максимальне количесиво очок,.

що має набрати тестований, щоб висвітився саме такий варіант.

результатів. Спинэдит «Варіант № «показує, над яким варіантом результату.

ведеться робота. Кнопки «Зберегти» і «Завантажити» викликають стандартні діалогові.

вікна Windows для, відповідно, збереження та завантаження файла результатов.

Зберігаючи файл результатів, бажано давати йому розширення RTS.

2 Система меню.

Середовище програмування Borland Delphi має дві компонента до створення меню:

TMainMenu і TPopupMenu. Вони роблять програмування меню додатків нескладної.

завданням. У цьому курсової роботі будуть описані способи створення меню з обома.

компонентами, і навіть представлені приклади программ.

2. 1 TMainMenu.

А, щоб зробити меню, помістіть компонент на форму, і потім клацніть по.

нього двічі лівої кнопкою мишки. З’явиться спеціальне вікно для введення пунктів.

меню, приклад якого представлений рис. 2. 1.

Малюнок 2. 1 — Вікно для введення меню.

На рис. 2.1 показано вікно для введення пунктів меню, і навіть частина інспектора.

об'єктів зі властивістю Caption, яка хоче привласнити рядок меню. З іншого боку,.

можна змінити властивість Name.

2. 1. 1 События.

Щоб програма реагувала вплинув на вибір пункту меню, треба створити спеціальний.

оброблювач події, який викликатися щоразу при щиглику мишки по.

пункту або за натисканні клавіші «ENTER».

Вставити оброблювач події вибору меню можна кількома способами: подвійний.

щелчек за пунктом на вікні редагування меню, на формі; можна, в у крайньому випадку,.

призначити подія сторінка «Events» інспектора объектов.

2. 1. 2 Вкладені меню.

Такі меню широко застосовують у багатьох додатках Windows але тільки. Обираючи.

пункт меню, користувач потрапляє у інше меню (зазвичай, розташоване.

вертикально) і може вибирати там.

Після введення пункту горизонтального меню, вони ухвалюють вид:

Малюнок 2. 2 — Вкладене меню.

Нині можна виділити мишкою пункт вкладеного меню і вводити параметри, як.

й у главного.

Вкладеним меню, своєю чергою, можна також ознайомитися призначати вкладені. Найзручніший.

спосіб — натиснути праву кнопку мишки ивыбрать з появи меню пункт «Create.

Submenu".

Створювати вкладені меню Windows дозволяє нескінченно (практично -.

скільки вистачить пам’яті або поки що не надоест).

2. 1. 3 Додаткові возможности.

Замість звичайного виконання дії під час виборів пункту меню, можна зробити,.

що він відзначався «пташкою» (Рис. 2. 4). І тут даний пункт діє.

подібно елементу інтерфейсу CheckBox. Щоб на програмі дізнатися, «включений» чи.

пункт, треба перевірити властивість Checked.

Малюнок 2. 4 — Меню, відзначене «птичкой».

Багато додатках також застосовується можливість закриття доступу до.

певному пункту меню, есло в момент вона може виконане буде. Для.

цього є властивість Enabled. Воно, як і Checked, має тип Boolean.

На рис. 2.4 видно, що пункт «Меню2» виділено жирним шрифтом. Це результат.

установки чергового логічного властивості об'єкта — Default.

Ще один важлива можливість — вставка розділової лінії. На рис. 2.5 (стор.

16) вона розміщена між «Меню1» і «Меню2»:

Цю «примочку» використав основному задля отдления різних типів дії,.

викликаний меню, наприклад, часто в меню «Файл» поміщають список кількох.

открывавшихся раніше файлів, відділений від решти меню такими лініями.

Чудовим прикладом використання розділювальних ліній він може служити меню.

«Файл» програми Microsoft Word.

Однією із зручних можливостей системи меню є можливість.

використання клавіш швидкого доступу, за одночасного натисканні клавіш Ctrl і Р.

поточний документ отправлется на печатку. І зовсім непотрібно відволікатися, витрачати час,.

знімати ручку з дочкою клавиатуры…

Аналізований нами компонент TMainMenu також має можливість призначення.

клавіш швидкого доступу. І тому служить властивість ShortCut.

У інспектора об'єктів він має раскрывающийся список, із якого вибрати.

потрібну комбінацію клавіш.

Якщо комусь захочеться зробити надто вже «круту» програму, тут йому допоможе.

можливість вставки картинок.

2. 2 TPopupMenu.

Це всплывающее меню, воно викликається натисканням правої кнопки миші. САМІ Як і.

MainMenu, цей компонент слід помістити на форму, для редагування двічі.

клацнути. В усьому, що стосується створення пунктів, цей компонент ідентичний.

MainMenu. Ну, успіхів хіба що, відразу будується вертикальне меню.

А, щоб меню «спливало», у властивості PopupMenu форми вказати його.

(меню) ім'я.

3 Приклад программы.

Нижче буде представлено приклади програм, використовують такі компоненти, як.

меню. Крім вихідного коду будуть ілюстрації.

Приклад є нескладну програму, що дозволить переглядати і.

редагувати текстові файли. Вікно програмних засобів показано на рис. 2. 8.

Малюнок 2. 8 — Вікно программы-примера.

Нижче представлять лістинг программы:

unit Unit1;

{Головний модуль программы}.

interface.

uses.

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Menus,.

StdCtrls;

type.

TForm1 = class (TForm).

MainMenu1: TMainMenu;{Главное меню}.

N1: TMenuItem;{Меню «Файл"}.

N2: TMenuItem;{Меню «Открыть"}.

N3: TMenuItem;{Меню «Сохранить"}.

N4: TMenuItem;{Меню «Выход"}.

N5: TMenuItem;{Разделительная линия}.

N6: TMenuItem; {Меню «Помощь"}.

N7: TMenuItem;{Меню «Про программе"}.

Memo1: TMemo;

OpenDialog1: TOpenDialog;

SaveDialog1: TSaveDialog;

PopupMenu1: TPopupMenu;{Всплывающее меню}.

procedure N4Click (Sender: TObject);

procedure N7Click (Sender: TObject);

procedure N2Click (Sender: TObject);

procedure N3Click (Sender: TObject);

private.

{ Private declarations }.

public.

{ Public declarations }.

end;

var.

Form1: TForm1;

implementation.

uses Unit2;

{$R *.DFM}.

procedure TForm1. N4Click (Sender: TObject);

begin.

close;

end;

procedure TForm1. N7Click (Sender: TObject);

begin.

aboutbox.show.

end;

procedure TForm1. N2Click (Sender: TObject);

begin.

if opendialog1. Execute then memo1.Lines.LoadFromFile (opendialog1.filename).

end;

procedure TForm1. N3Click (Sender: TObject);

begin.

if savedialog1. Execute then memo1.Lines.SaveToFile (savedialog1.filename).

end;

end.

unit Unit2;

{Модуль, описує вікно «Про программе"}.

interface.

uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls, Buttons,.

ExtCtrls;

type.

TAboutBox = class (TForm).

Panel1: TPanel;

ProgramIcon: T8529_;

ProductName: TLabel;

Comments: TLabel;

OKButton: TButton;

procedure OKButtonClick (Sender: TObject);

private.

{ Private declarations }.

public.

{ Public declarations }.

end;

var.

AboutBox: TAboutBox;

implementation.

{$R *.DFM}.

procedure TAboutBox. OKButtonClick (Sender: TObject);

begin.

Hide.

end;

end.

Ця програма демонструє використання меню. Вона має головне меню і.

всплывающее, що з’являється при натисканні правої кнопки мишки. Меню обладнані.

клавішами швидкого доступу, використовується розділова линия.

Меню «Відкрити», «Зберегти», «Вихід» і «Про торішню програму» обладнані клавішами швидкого.

доступу. Всплывающее меню, має два пункту — «Відкрити» і «Зберегти». За умов їх.

натисканні викликаються події відповідних пунктів головного меню.

Выводы.

У цьому курсової роботі розроблено систему для психотестирования на Borland.

Delphi 5. 0. Окрім основної програми, створено дві утилитные — до створення.

тестів, які у окремих файлах.

У процесі складання програми детально прокуратура вивчила основні об'єкти.

графічного интерфейсa Windows.

У процесі без виконання другого частини курсової праці були детально вивчені.

компоненти, дозволяють створювати систему меню. Зблизька цих.

компонентів приведено программа-пример.

Додаток А.

Лістинг программы.

unit Mainfrm;

interface.

uses.

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,.

Buttons, ExtCtrls, TestTypes;

type.

TfrmMain = class (TForm).

85291: T8529_;

SpeedButton1: TSpeedButton;

SpeedButton2: TSpeedButton;

85292: T8529_;

SpeedButton3: TSpeedButton;

procedure runtest;

procedure SpeedButton1Click (Sender: TObject);

procedure SpeedButton2Click (Sender: TObject);

procedure SpeedButton3Click (Sender: TObject);

procedure FormClose (Sender: TObject; var Action: TCloseAction);

private.

{ Private declarations }.

public.

end;

var.

frmMain: TfrmMain;

testcount:integer;

implementation.

uses Testfrm;

{$R *.DFM}.

procedure tfrmmain. runtest;

var f: file of ttest;

begin.

frmmain.hide;

assignfile (f, testfilename);

try.

reset (f);

except.

showmessage («Файл тесту не знайдено! »);

exit.

end;

testnum:=1;

while not eof (f) do begin.

try.

read (f, test[testnum]);

inc (testnum);

except.

showmessage («Помилка в файлі тесту »);

frmmain.show;

exit.

end.

end;

closefile (f);

frmTest.show;

end;

procedure TfrmMain. SpeedButton1Click (Sender: TObject);

begin.

testfilename:= «Time.tst » ;

runtest.

end;

procedure TfrmMain. SpeedButton2Click (Sender: TObject);

begin.

testfilename:= «Agress.tst » ;

runtest.

end;

procedure TfrmMain. SpeedButton3Click (Sender: TObject);

begin.

testfilename:= «health.tst » ;

runtest.

end;

procedure TfrmMain. FormClose (Sender: TObject; var Action: TCloseAction);

begin.

if messagedlg («Ви хочете вийти? », mtwarning,[mbyes, mbno], 0)=mrno.

then action:=canone.

end;

end.

unit Testfrm;

interface.

uses.

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,.

ExtCtrls, StdCtrls, Buttons, testtypes;

type.

TfrmTest = class (TForm).

85291: T8529_;

rb1: TRadioButton;

rb2: TRadioButton;

rb3: TRadioButton;

Label1: TLabel;

SpeedButton1: TSpeedButton;

procedure load;

procedure rb1Click (Sender: TObject);

procedure rb2Click (Sender: TObject);

procedure rb3Click (Sender: TObject);

procedure FormActivate (Sender: TObject);

procedure SpeedButton1Click (Sender: TObject);

procedure FormClose (Sender: TObject; var Action: TCloseAction);

private.

{ Private declarations }.

public.

defque:byte;

end;

var.

frmTest: TfrmTest;

implementation.

{$R *.DFM}.

uses mainfrm, Resfrm;

procedure tfrmtest. load;

begin.

label1.caption:=test[defque]. text;

rb1.Caption:=test[defque]. quest[1];

rb2.Caption:=test[defque]. quest[2];

rb3.Caption:=test[defque]. quest[3];

speedbutton1.enabled:=false;

rb1.Enabled:=true;

rb2.Enabled:=true;

rb3.Enabled:=true;

rb1.Checked:=false;

rb2.Checked:=false;

rb3.Checked:=false;

if rb3. caption= «» then rb3. hide else rb3.Show.

end;

procedure TfrmTest. FormActivate (Sender: TObject);

begin.

testcount:=0;

defque:=1;

load.

end;

procedure TfrmTest. rb1Click (Sender: TObject);

begin.

speedbutton1.Enabled:=true;

rb1.Enabled:=false;

rb2.Enabled:=false;

rb3.Enabled:=false;

inc (testcount, test[defque]. count[1]).

end;

procedure TfrmTest. rb2Click (Sender: TObject);

begin.

speedbutton1.Enabled:=true;

rb1.Enabled:=false;

rb2.Enabled:=false;

rb3.Enabled:=false;

inc (testcount, test[defque]. count[2]).

end;

procedure TfrmTest. rb3Click (Sender: TObject);

begin.

speedbutton1.Enabled:=true;

rb1.Enabled:=false;

rb2.Enabled:=false;

rb3.Enabled:=false;

inc (testcount, test[defque]. count[3]).

end;

procedure TfrmTest. SpeedButton1Click (Sender: TObject);

var f: file of TResult;

r:tresult;

begin.

inc (defque);

if defque=testnum then begin.

assignfile (f, copy (testfilename, 1, length (testfilename)-3)+ «rts »);

reset (f);

while not eof (f) do begin.

read (f, r);

if testcount in [r.min.r.max] then begin.

frmres.label1.Caption:=r.text;

break.

end.

end;

closefile (f);

frmtest.hide;

frmres.show;

end;

load.

end;

procedure TfrmTest. FormClose (Sender: TObject; var Action: TCloseAction);

begin.

frmmain.show;

action:=cahide.

end;

end.

unit Resfrm;

interface.

uses.

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,.

StdCtrls;

type.

TfrmRes = class (TForm).

Label1: TLabel;

Button1: TButton;

procedure Button1Click (Sender: TObject);

procedure FormClose (Sender: TObject; var Action: TCloseAction);

private.

{ Private declarations }.

public.

{ Public declarations }.

end;

var.

frmRes: TfrmRes;

implementation.

uses Mainfrm;

{$R *.DFM}.

procedure TfrmRes. Button1Click (Sender: TObject);

begin.

frmres.hide;

frmmain.show.

end;

procedure TfrmRes. FormClose (Sender: TObject; var Action: TCloseAction);

begin.

action:=cahide;

frmmain.show.

end;

end.

unit TestTypes;

interface.

type.

TTest=record.

text:string[255];

quest:array[1.3] of string[100];

count:array[1.3] of byte;

end;

var.

testfilename: string;

test:array[1.100] of ttest;

testnum:byte;

implementation.

end.

Лістинг програми ТС:

unit Mainfrm;

interface.

uses.

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,.

StdCtrls, Spin, TestTypes;

type.

TfrmMain = class (TForm).

rb1: TRadioButton;

rb2: TRadioButton;

rb3: TRadioButton;

Edit1: TEdit;

Label1: TLabel;

SpinEdit1: TSpinEdit;

Label2: TLabel;

Edit2: TEdit;

Label3: TLabel;

Label4: TLabel;

Button1: TButton;

Button2: TButton;

SaveDialog1: TSaveDialog;

OpenDialog1: TOpenDialog;

StaticText1: TStaticText;

Label5: TLabel;

SpinEdit2: TSpinEdit;

Button3: TButton;

procedure Button2Click (Sender: TObject);

procedure Button1Click (Sender: TObject);

procedure FormCreate (Sender: TObject);

procedure Edit1Change (Sender: TObject);

procedure Edit2Change (Sender: TObject);

procedure rb1Click (Sender: TObject);

procedure rb2Click (Sender: TObject);

procedure rb3Click (Sender: TObject);

procedure SpinEdit1Change (Sender: TObject);

procedure SpinEdit2Change (Sender: TObject);

procedure Button3Click (Sender: TObject);

private.

{ Private declarations }.

public.

variant:^tradiobutton;

nq:byte;

end;

var.

frmMain: TfrmMain;

implementation.

{$R *.DFM}.

procedure TfrmMain. Button2Click (Sender: TObject);

var f: file of TTest;

i:byte;

begin.

if savedialog1. execute then begin.

assignfile (f, savedialog1. Filename);

rewrite (f);

for i:=1 to testnum do write (f, test[i]);

closefile (f).

end.

end;

procedure TfrmMain. Button1Click (Sender: TObject);

var f: file of ttest;

begin.

if opendialog1. execute then begin.

assignfile (f, opendialog1. Filename);

reset (f);

testnum:=1;

while not eof (f) do begin.

read (f, test[testnum]);

inc (testnum).

end;

statictext1.Caption:= «Усього питань «+inttostr (testnum);

closefile (f);

spinedit1.value:=1;

spinedit1change (sender).

end.

end;

procedure TfrmMain. FormCreate (Sender: TObject);var i: byte;

begin.

testnum:=1;

variant:=@rb1;

nq:=1;

for i:=1 to 100 do begin.

test[i]. quest[1]:= «Вариант1 » ;

test[i]. quest[2]:= «Вариант2 » ;

test[i]. quest[3]:= «Вариант3 » ;

test[i]. count[1]:=0;

test[i]. count[2]:=0;

test[i]. count[3]:=0;

test[i]. text:= «Текст питання «.

end;

end;

procedure TfrmMain. Edit1Change (Sender: TObject);

begin.

label2.Caption:=edit1.Text;

test[spinedit1.value]. text:=edit1.text.

end;

procedure TfrmMain. Edit2Change (Sender: TObject);

begin.

variant^.Caption:=edit2.Text;

test[spinedit1.value]. quest[nq]:=edit2.text.

end;

procedure TfrmMain. rb1Click (Sender: TObject);

begin.

variant:=@rb1;

nq:=1;

edit2.Text:=rb1.Caption;

spinedit2.Value:=test[spinedit1.Value]. count[1];

edit2.SetFocus.

end;

procedure TfrmMain. rb2Click (Sender: TObject);

begin.

variant:=@rb2;

nq:=2;

edit2.Text:=rb2.Caption;

spinedit2.Value:=test[spinedit1.Value]. count[2];

edit2.SetFocus.

end;

procedure TfrmMain. rb3Click (Sender: TObject);

begin.

variant:=@rb3;

nq:=3;

edit2.Text:=rb3.Caption;

spinedit2.Value:=test[spinedit1.Value]. count[3];

edit2.SetFocus.

end;

procedure TfrmMain. SpinEdit1Change (Sender: TObject);

begin.

if spinedit1. value>testnum then begin.

inc (testnum);

statictext1.caption:= «Усього питань «+inttostr (testnum).

end;

label2.Caption:=test[spinedit1.value]. text;

rb1.Caption:=test[spinedit1.value]. quest[1];

rb2.Caption:=test[spinedit1.value]. quest[2];

rb3.Caption:=test[spinedit1.value]. quest[3];

rb1.Checked:=true;

variant:=@rb1;

edit1.Text:=test[spinedit1.value]. text;

edit2.text:=test[spinedit1.value]. quest[1];

edit2.setfocus.

end;

procedure TfrmMain. SpinEdit2Change (Sender: TObject);

begin.

test[spinedit1.value]. count[nq]:=spinedit2.value.

end;

procedure TfrmMain. Button3Click (Sender: TObject);

var i: byte;

begin.

if spinedit1. value=testnum then begin.

dec (testnum);

spinedit1.value:=spinedit1.value-1;

exit.

end;

if testnum=1 then exit;

for i:=spinedit1.value to testnum-1 do test[i]: =test[i+1];

dec (testnum);

spinedit1change (sender);

statictext1.Caption:= «Усього питань «+inttostr (testnum).

end;

end.

Лістинг програми RС:

unit Mainfrm;

interface.

uses.

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,.

testtypes, StdCtrls, Spin;

type.

TfrmMain = class (TForm).

Memo1: TMemo;

SpinEdit1: TSpinEdit;

Label1: TLabel;

SpinEdit2: TSpinEdit;

Label2: TLabel;

Button1: TButton;

Button2: TButton;

SpinEdit3: TSpinEdit;

Label3: TLabel;

OpenDialog1: TOpenDialog;

SaveDialog1: TSaveDialog;

procedure Button1Click (Sender: TObject);

procedure Button2Click (Sender: TObject);

procedure SpinEdit1Change (Sender: TObject);

procedure SpinEdit2Change (Sender: TObject);

procedure Memo1Change (Sender: TObject);

procedure FormCreate (Sender: TObject);

procedure SpinEdit3Change (Sender: TObject);

private.

{ Private declarations }.

public.

res:array[1.100] of tresult;

varnum:byte;

no:boolean;

end;

var.

frmMain: TfrmMain;

implementation.

{$R *.DFM}.

procedure TfrmMain. Button1Click (Sender: TObject);

var f: file of tresult;

i:byte;

begin.

if savedialog1. execute then begin.

assignfile (f, savedialog1. filename);

rewrite (f);

for i:=1 to varnum-1 do write (f, res[i]);

closefile (f).

end.

end;

procedure TfrmMain. Button2Click (Sender: TObject);

var f: file of tresult;

begin.

if opendialog1. execute then begin.

assignfile (f, opendialog1. filename);

reset (f);

varnum:=1;

while not eof (f) do begin.

read (f, res[varnum]);

inc (varnum).

end;

memo1.text:=res[1]. text;

spinedit1.value:=res[1]. min;

spinedit2.value:=res[1]. max;

spinedit3.value:=1;

closefile (f).

end.

end;

procedure TfrmMain. SpinEdit1Change (Sender: TObject);

begin.

if no then exit;

res[spinedit3.value]. min:=spinedit1.value;

if spinedit2.value.

end;

procedure TfrmMain. SpinEdit2Change (Sender: TObject);

begin.

if no then exit;

res[spinedit3.value]. max:=spinedit2.value;

end;

procedure TfrmMain. Memo1Change (Sender: TObject);

var i: integer;

begin.

if not no then for i:=1 to length (memo1.text) do.

res[spinedit3.value]. text[i]:=memo1.text[i].

end;

procedure TfrmMain. FormCreate (Sender: TObject);

begin.

varnum:=1;

no:=false.

end;

procedure TfrmMain. SpinEdit3Change (Sender: TObject);

begin.

no:=true;

if varnum.

memo1.text:=res[spinedit3.value]. text;

spinedit1.value:=res[spinedit3.value]. min;

spinedit2.value:=res[spinedit3.value]. max;

no:=false;

memo1.SetFocus.

end;

end.

Показати весь текст
Заповнити форму поточною роботою