Смекни!
smekni.com

Інструментальна система створення електронних підручників (стр. 4 из 11)

В подальшому створюються решта форм інструментальної системи створення електронних підручників.

І останнім у головному файлі проекту виконується метод Run об’єкту Application, який власне й здійснює запуск першої створеної форми, а саме форми інтегрованого середовища інструментальної системи створення електронних підручників. Після цього, виконання програми передається інтегрованому середовищу, в якому користувач може проробити всі ті дії над проектом електронного підручника, які описані вище.

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

Все описане вище, можна зобразити за допомогою діаграми стану (малюнок 2).

Малюнок 2. Діаграма стану.

3.4.2 Опис модулів

В програмному модулі Dialog, описаний клас TForm_Dialog, який в свою чергу являється нащадком від класу TForm. Клас TForm_Dialog описує форму, яка буде відображатись тільки при запуску інструментальної системи створення електронних підручників і призначена для того, щоб користувач перед початком роботи зробив вибір: створювати новий проект або відкрити вже існуючий проект електронного підручника. Цей вибір користувач повинен буде зробити шляхом натискання на запропоновані йому дві кнопки. При наведенні, на кожну кнопку, курсору миші, останній змінює свою форму на форму людської руки і внизу під кнопками відображається інформація про подію яка виникне внаслідок натискання на ту чи іншу кнопку.

Дана форма буде виведена у модальному режимі. Останнє означає що інші форми будуть недоступні користувачу, поки він не завершить роботу з даною формою.

Клас TForm_Dialog містить опис процедури обробки події FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState), яка викликається кожного разу, коли користувач натискає на клавішу “Escape”. В результаті, це натискання буде сприйняте як відмова від вибору відкрити вже існуючий проект і буде запущена основна форма інструментальної системи створення електронних підручників, яка буде містити в собі новостворений проект електронного підручника. Останній міститиме в собі два наступних записи:

запис першої теми, з назвою “Нова тема”;

запис підпису автора.

Крім того, клас TForm_Dialog містить два поля даних з міткою private, яка означає, що ці змінні може використовувати тільки даний клас. Ці поля даних наступні:

New — використовується в якості індикатора, тобто в залежності від значення яке приймає ця змінна буде відображатись відповідний малюнок на кнопці SpeedButton_New. При отриманні значення True буде відображатись один малюнок, при отриманні значення False — інший.

Open — використовується в якості індикатора, тобто в залежності від значення яке приймає ця змінна, буде відображатись відповідний малюнок на кнопці SpeedButton_New. При отриманні значення True буде відображатись один малюнок, при отриманні значення False — інший.

В програмному модулі InsertChapter описаний клас TForm_InsertChapter, який в свою чергу являється нащадком від класу TForm. Клас TForm_InsertChapter описує форму, яка буде відображатись при натисканні користувачем на відповідній кнопці головної форми інструментальної системи створення електронних підручників. Вона призначена для введення користувачем нової теми. Дана форма буде запускатись в модальному режимі.

При запуску цієї форми, яка містить одне поле буде введена назва нової теми по замовчуванню, тобто “Нова тема”. Але користувач може змінити запропоновану йому назву на ту назву, яку він буде вважати за потрібне. Крім того, після того, як користувач ввів назву нової теми він має підтвердити або заперечити свій вибір, шляхом натискання на одну з двох запропонованих йому кнопок, тобто “Так” або “Відміна”.

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

У випадку, якщо користувач у полі назви нової теми не ввів жодного символу і натиснув кнопку підтвердження вибору назви нової теми, то система видасть йому повідомлення про помилку наступного характеру: “Назва нової теми повинна складатись хоча б з одного символу”. Після того, як користувач погодиться з цим повідомленням зникне форма вводу нової теми і він опиниться в робочій області електронного підручника головної форми системи.

Клас TForm_InsertChapter також містить одне загальнодоступне поле даних Indic типу Boolean. В залежності від того, яке значення буде мати дане поле даних, при закритті форми TForm_InsertChapter буде робитися висновок по ньому, чи треба ввести нову тему у електронний підручник або ні. Значення True означатиме, що необхідно ввести нову тему до вмісту електронного підручника, тобто була натиснута кнопка яка підтвердила правильність введеної назви нової теми, а значення False — ні, тобто була натиснута кнопка “Відміна” або натиснута клавіша “Escape”.

В програмному модулі InsertTopic описаний клас TForm_InsertTopic, який в свою чергу являється нащадком від класу TForm. Клас TForm_InsertTopic описує форму, яка буде відображатись при натисканні користувачем на відповідній кнопці головної форми інструментальної системи створення електронних підручників. Вона призначена для введення користувачем нового параграфу. Дана форма буде запускатись в модальному режимі.

При запуску цієї форми, яка містить поле вводу назви нового параграфу та поле вводу повного шляху до HTML—файлу, який містить матеріал або інформацію про цей параграф. В полі вводу назви нового параграфу буде введена назва нового параграфу по замовчуванню, тобто “Новий параграф”. Але користувач може змінити запропоновану йому назву на ту назву, яку він буде вважати за потрібне. В поле вводу повного шляху до HTML—файлу користувач може вводити повний шлях до HTML-файлу, який буде зв’язаний з новим параграфом. Крім того, після того, як користувач ввів назву нової теми та повний шлях до HTML-файлу, який буде зв’язаний з новим параграфом (ввід повного шляху до HTML-файлу не є обов’язковим) він має підтвердити або заперечити свій вибір, шляхом натискання на одну з двох запропонованих йому кнопок, тобто “Так” або “Відміна”.

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

У випадку, якщо користувач у полі назви нового параграфу не ввів жодного символу і натиснув кнопку підтвердження вибору назви нового параграфу, то система видасть йому повідомлення про помилку наступного характеру: “Назва нового параграфу повинна складатись хоча б з одного символу”. Після того, як користувач погодиться з цим повідомленням зникне форма вводу нового параграфу і він опиниться в робочій області електронного підручника головної форми інструментальної системи створення електронного підручника.

Крім того, клас TForm_InsertTopic містить процедуру обробки події SpeedButton1Click(Sender: TObject), яка виникає в результаті натискання на кнопку SpeedButton1 (кнопка на якій зображено три крапки). В результаті натискання на цю кнопку буде відображений стандартний діалог відкриття html-файлів, в якому користувач вибере html-файл, який буде зв’язаний з новим параграфом. Після того, як користувач підтвердить свій вибір, стандартний діалог відкриття файлів зникне і в полі вводу повного шляху до html-файлу, який буде зв’язаний з новим параграфом, буде відображений повний шлях до файлу який обрав користувач у стандартному діалозі відкриття файлів.

Клас TForm_InsertTopic також містить одне загальнодоступне поле даних Indic типу Boolean. В залежності від того, яке значення буде мати дане поле даних, при закритті форми TForm_InsertTopic буде робитися висновок по ньому, чи треба ввести новий параграф у електронний підручник або ні. Значення True означатиме, що необхідно ввести новий параграф до вмісту електронного підручника, тобто була натиснута кнопка яка підтвердила правильність введеної назви нового параграфу, а значення False — ні, тобто була натиснута кнопка “Відміна” або натиснута клавіша “Escape”.

В програмному модулі Move_Chapter описаний клас TForm_Move_Chapter, який в свою чергу являється нащадком від класу TForm. Клас TForm_Move_Chapter описує форму, яка буде відображатись при натисканні користувачем на відповідній кнопці головної форми інструментальної системи створення електронних підручників. Вона призначена для зміни користувачем порядку слідування тем електронного підручника. Дана форма буде запускатись в модальному режимі.

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

В класі TForm_Move_Chapter визначені також поля даних під специфікатором private і можуть бути використані тільки даним класом. Це наступні поля даних:

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

Temp — містить в собі копії назв тем і параграфів електронного підручника;

TempFileName — містить в собі копії повних шляхів до HTML-файлів, що містять в собі матеріал відповідного параграфу;

TempIcon — містить в собі копії повних шляхів до графічних файлів (файлів з розширенням *.bmp), які використовуються в якості іконок для тем і параграфів;

TempBgImage — містить в собі копії повних шляхів до графічних файлів (файлів з розширенням *.gif), які використовуються в якості фонових малюнків для html-файлів, що містять матеріал параграфів;