3.4 Детальний опис програми

 

3.4.1 Опис програми-додатка

Проект “інструментальної системи створення електронних підручників” складається з 11 модулів: Dialog, InsertChapter, InsertTopic, MoveChapter, Rename, HTMLRedactor, Style, Image, Table, HyperLink, ViewHtml та головного файлу додатку EBookCreator. На малюнку 1 можна побачити відношення між ними:


Малюнок 1. Відношення між модулями

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

інтегрованого середовища інструментальної системи створення електронних підручників;

діалогу;

вставки нової теми;

вставки нового параграфу;

переміщення тем;

перейменування тем та параграфів;

HTML-редактору;

стилів;

вибору та перегляду іконок;

перегляду HTML-документів.

При створенні форми інтегрованого середовища інструментальної системи створення електронних підручників визначаються розміри екрану у пікселях та надаються їхні розміри розмірам форми. Це робиться з метою, щоб форма займала весь простір робочого стола. Після цього індикаторам малюнків, що будуть виводитись на кнопках при наведенні та відведенні курсору миші на область кнопки присвоюються початкові значення. Наступним кроком є створення власних даних класу TForm_Table: Title, FileName, Icon, BgImage та BgColor. Вони будуть існувати на протязі виконання програми і міститимуть в собі дані, про елементи електронного підручника, що створюється або редагується за допомогою інструментальної системи.

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

Змінна FileName — містить в собі дані про повний шлях до HTML-файлів, які містять інформацію та матеріал про параграф.

Змінна Icon — містить повний шлях до графічних файлів з розширенням *.bmp, які й являють собою іконки. Кожний параграф повинен в обов’язковому порядку мати іконку.

Змінна BgImage — містить повний шлях до графічних файлів з розширенням *.gif та *.jpg, які використовуються в якості фонового малюнку. Ці дані отримуються з html-файлів параграфів, а саме з атрибуту “background” відкриваючого тегу <body>.

Змінна BgColor — містить колір фону у вигляді 16-го коду кольору в системи RGB, тільки написаної в зворотному порядку, тобто спочатку записуються байт синього кольору, далі байт зеленого кольору і останнім байт червоного кольору. Це зроблено, тому що саме з таким форматом кольору працює Delphi. Ці дані отримуються з HTML-файлів параграфів, а саме з атрибуту “bgcolor” відкриваючого тегу <body> та переписуються згідно правила, викладеного вище.

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

І останнім у головному файлі проекту виконується метод 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-файлів, що містять матеріал параграфів;

TempBgColor — містить в собі копії кодів кольорів фону html-файлу, що містить матеріал параграфу. Причому код кольору записаний згідно системи RGB, тільки розташування байтів що відповідають за червоний, зелений та синій кольори в оберненому порядку, тобто спочатку йде байт синього кольору, потім байт зеленого кольору і останнім байт червоного кольору;

Клас TForm_Move_Chapter містить такі процедури обробки подій:

SpeedButton_UpClick(Sender: TObject) — викликається при натисканні на кнопку із зображенням стрілки вверх SpeedButton_Up. При цьому, здійснюється обмін місцями теми електронного підручника на який знаходиться покажчик із темою, яка знаходиться на одну позицію вище. Після цього викликається процедура Move(const First, Second: Integer), яка міняє місцями відповідні значення копій масивів елементів електронного підручника. Індекси місць визначаються процедурою самостійно, на основі параметрів First – порядковий номер теми на якому спочатку знаходився покажчик списку та Second – порядковий номер на якому переміститься тема електронного підручника;

SpeedButton_DownClick(Sender: TObject) — викликається при натисканні на кнопку із зображенням стрілки вниз SpeedButton_Down. При цьому, здійснюється обмін місцями теми електронного підручника, на якій знаходиться покажчик із темою, яка знаходиться на одну позицію нижче. Після цього викликається процедура Move(const First, Second: Integer), яка міняє місцями відповідні значення копій масивів елементів електронного підручника. Індекси місць визначаються процедурою самостійно, на основі параметрів First – порядковий номер теми на якому спочатку знаходився покажчик списку та Second – порядковий номер на якому переміститься тема електронного підручника;

ListBox_ChapterDrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState) — дозволяє виводити в рядках об’єкта ListBox_Chapter і назву теми і іконку теми;

Після того, як користувач провів необхідні йому зміни щодо порядку розташування тем електронного підручника, він має підтвердити або заперечити свій вибір, шляхом натискання на одну з двох запропонованих йому кнопок, тобто “Так” або “Відміна”. Якщо користувач натисне на клавішу “Escape” то це буде аналогічно натисканню на кнопку “Відміна”.

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

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

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

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

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

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

Після запуску форми TForm_Icon користувачу пропонується зробити вибір тієї іконки, яку він вважатиме запотрібне вибрати для певного параграфу електронного підручника. Свій вибір він здійснює шляхом перегляду тих чи інших іконок із списку з назвами графічних файлів (файли з розширенням *.bmp), що містять ці іконки.

Після того, як користувач зробив свій вибір, він повинен зробити підтвердження того, що він вибрав саме цю іконку, шляхом натискання на одну з двох йому запропонованих кнопок: “Так” або “Відміна”.

Якщо користувач змінив іконку та підтвердив цю зміну шляхом натискання на кнопку “Так”, тоді зникне форма зміни іконки параграфу електронного підручника і він опиниться в робочій області електронного підручника головної форми інструментальної системи, причому стара іконка буде замінена на нову.

Клас TForm_Icon інкапсулює в собі такі поля даних:

Icons — визначено в розділі private і містить повні шляхи графічних файлів, тобто файлів з розширенням *bmp, які встановлені в інструментальній системі створення електронних підручників;

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

Програмний модуль Style містить в собі опис класу TForm_Style, який в свою чергу являється нащадком від класу TForm. Клас TForm_Style містить в собі опис форми, яка призначена для додавання, знищення та редагування таблиці стилів певного HTML-файлу. Дана форма запускається в модальному режимі при натисканні на відповідну клавішу яка знаходиться на панелі форми редактора HTML-документу.

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

Форма може знаходитись в двох режимах:

редагування;

перегляду.

Режим перегляду не дозволяє змінювати параметри стилів, а дозволяє лише переглядати параметри вибраного стиля або знищувати вибраний стиль. Форма знаходиться в цьому режимі при кожній її активізації та до того моменту поки не буде натиснута кнопка редагування стилів й переходить в цей режим при натисканні на кнопку запису або відміни проведених змін в таблиці стилів.

В режим редагування форма переходить при натисканні користувачем кнопки “Додати” або “Редагувати”. В даному режимі користувач може змінити назву стилю та його параметри, такі як шрифт, висота та колір символів.

При знаходженні в режимі редагування стилів користувач може крім того, щоб вибрати шрифт із списку запропонованих йому, набрати цей шрифт. Якщо такий шрифт не буде міститись в системі то система згенерує повідомлення про помилку наступного характеру: “Даний шрифт в системі не встановлений”. Користувач також може вибрати із списку висоти символів, але крім цього він може набрати в полі безпосередньо ту висоту символів, яка йому потрібно, тільки за умови, що це число знаходиться у межах від 1 до 1638. В протилежному випадку система видасть повідомлення про помилку наступного характеру: “Висота символу повинна знаходитись в межах від 1 до 1638”. Крім цього користувач має можливість змінити колір символів. Це відбувається наступним чином: при вході в режим редагування на панелі кольору з’являється кнопка, при натисканні на яку викликається стандартний діалог перегляду та вибору кольорів. Якщо користувач зробив якійсь вибір кольору й підтвердив його то вибраним кольором буде зафарбована панель кольору.

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

При натискуванні на кнопку “Додати” система сама запропонує користувачу ім’я стилю по замовчуванню, яке не співпаде із жодним з наявних стилів в таблиці стилів певного html-файлу. Користувач звісно може змінити запропоновану йому назву.

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

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

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

створювати нові проекти електронних підручників;

відкривати вже існуючі проекти електронних підручників;

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

Також інструментальна система створення електронних підручників дозволяє виконувати наступні дії над проектом електронного підручника:

вставляти нову тему;

вставляти новий параграф;

змінювати порядок слідування тем в електронному підручнику;

видаляти вибрану тему;

видаляти вибраний параграф;

змінити назву вибраної теми;

змінити назву вибраного параграфу;

перемістити параграф з однієї теми в іншу, а також поміняти порядок слідування параграфів в межах однієї теми.

Всі ці дії можна виконати за допомогою натискання на відповідні кнопки, які розміщені на панелі управління діями над електронним підручником.

Головна форма інструментальної системи EbookCreator містить розвинуту систему меню (menu bar) і відповідних низпадаючих меню (drop-down menus), яка дублює всі функції, що виконуються над проектами електронного підручника та всі дії, що виконуються над окремим проектом електронного підручника.

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

Форма TForm_Table містить в собі ще й робочу область. Остання, в свою чергу, являє собою таблицю, яка містить інформацію про елементи електронного підручника. Таблиця складається з 5-ти полів:

поле “Назва”;

поле “Файл”;

поле “Іконка”;

поле “Малюнок”;

поле “Фон”;

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

Поле “Файл” містить в собі назву HTML-файлу, який містить матеріал або інформацію про параграф електронного підручника з яким він зв’язаний. Лише параграфи та підпис автору можуть бути зв’язані з HTML-файлом. Кожний запис, який вказує на будь-яку тему електронного підручника в даному полі не містить жодного символу.

Поле “Іконка” містить в собі зображення іконки параграфу електронного підручника. Кожний параграф повинен мати іконку. Якщо при створенні параграфу користувач не обрав жодної іконки для параграфу, то система автоматично присвоїть якусь іконку по замовчуванню. Запис підпису автору містить одну стандартну іконку, яку він не в змозі змінити, оскільки такі права інструментальна система створення електронних підручників не надає користувачу. Запис будь-якої теми електронного підручника в даному полі не містить жодного малюнку, оскільки системою передбачено, що теми мають стандартну іконку.

Поле “Малюнок” відображає назву графічного файлу (файлу з розширенням *.gif або *.jpg), який використовується в якості фонового малюнку для HTML-файлу, який вказаний в полі “Файл” даного запису. Такими значеннями можуть володіти записи параграфів та підпису автора. Записи тем електронного підручника в даному полі не містять жодного символу.

Поле “Фон” містить в собі прямокутні області, які зафарбовані тим кольором, що й фон HTML-файлу, з яким зв’язаний даний параграф або підпис автору. Це поле може бути й пустим, останнє означатиме, що HTML-файл в якості кольору фону, використовує той колір, що встановлений по замовчуванню. А по замовчуванню встановлений білий колір. Для запису будь-якої теми електронного підручника дане поле не містить жодного кольору.

Клас TForm_Table містить наступні власні поля даних:

Title — містить назви тем, параграфів та підпису автору електронного підручника. Для того, щоб відрізнити тему від інших елементів, першим символом в її назві є символ “-”. Для того, щоб відрізнити запис підпису автора від інших, то першим символом повинен бути символ “*”;

FileName — містить повний шлях до HTML-файлів, які містять матеріал або інформацію про параграф або підпис автора. Для кожної теми дане поле буде пустим;

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

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

BgColor — містить 3-байтовий код кольору системи RGB, який записаний у 16-вій системі числення. При чому цей код записаний у зворотному порядку, тобто спочатку йде байт синього кольору, після нього — байт зеленого кольору і останнім — байт червоного кольору;

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

Клас TForm_Table також містить власні поля, які відповідають за зображення на кнопках панелі управління тих чи інших зображень. Тобто на кнопці буде одне зображення, а після того, як користувач наведе курсор миші, на кнопці з’явиться інше зображення. Після того, як користувач наведе курсор миші на ту область панелі управління, яка не містить жодного управляючого елементу, то зображення на кнопці відновиться на початкове. За цей ефект зміни зображень на кнопках панелі управління відповідають такі полі як: New, Open, Save, InsertC, InsertT, DeleteTC, MoveT та Rename.

Крім того, клас TForm_Table містить в собі визначення поля Dir під специфікатором private. Дане поле містить в собі повний шлях до каталогу проекту електронного підручника. Визначений під специфікатором private для того, щоб бути доступним лише в даному модулі.

В класі TForm_Table визначено 5 загальнодоступних полів даних, які містять копії основних елементів електронного підручника. Вони створюються і заповнюються оригіналами при спробі користувача змінити порядок слідування тем електронного підручника і знищуються при підтвердженні або відмові від проведених змін із порядком розташування тем. Крім того, при підтвердженні проведених змін їх значення записуються в оригінали елементів електронного підручника. Ці поля мають наступні назви:

CTitle — містить копії поля Title;

CFileName — містить копії поля FileName;

CIcon — містить копії поля Icon;

CBgImage — містить копії поля BgImage;

CBgColor — містить копії поля BgColor;

В цьому класі також визначено ще деякі загальнодоступні поля даних, такі як:

Move — являє собою індикатор, в залежності від значення якого можна зробити висновок, чи зробив користувач зміни щодо порядку слідування тем електронного підручника, незалежно від того, чи зробив користувач підтвердження;

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

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

Path — містить в собі повний шлях до місця на диску де розташований проект електронного підручника;

FileNameProject — містить в собі ім’я файлу проекту електронного підручника без розширення;

FileNameProjectTotal — містить в собі ім’я файлу проекту електронного підручника із розширенням;

ApplicationPath — містить в собі повний шлях до місця на диску де розташований виконавчий файл інструментальної системи створення електронних підручників;

Клас TForm_Table містить також описи 5-ти загальнодоступних методів. Ці методи всі є процедурами.

DoShowHint(var HintStr: string; var CanShow: Boolean; var HintInfo: THintInfo) — призначена для відображення підказки при наведенні на тему або параграф електронного підручника, назва якого не вміщується у відведене для неї поле;

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

OpenProject(const FileName: AnsiString) — призначена для заповнення власних полів даних, які відповідають за вміст елементів електронного підручника, при відкритті вже існуючого проекту електронного підручника. В якості параметру цій процедурі дається повний шлях до файлу проекту;

CreateCodeScript — призначена для створення файлу Code.js, написаного на мові програмування сценаріїв (скриптів) JavaScript і містить в собі опис функцій, які в свою чергу реалізують зміст електронного підручника у вигляді дерева;

ClearList — призначена для очищення об’єктів, які відповідають за вміст елементів електронного підручника при створенні нового або відкритті вже існуючого проекту;

Compiler(const Path: String) — призначена для створення файлу, каталогу і сценарію проекту електронного підручника. Каталог матиме таку саму назву що й файл проекту, а сценарій матиме назву Project.js і він міститиме виклики функцій які визначені у сценарії Code.js. В якості параметру передається змінна Path, яка містить повний шлях до каталогу, де має бути збережені файл і каталог електронного підручника;

OpenHtmlFile(const i: Integer) — призначена для відкриття html-файлу і зчитування з нього інформації про фоновий малюнок та колір фону. В якості параметру передається порядковий номер запису в таблиці, що розташована в робочій області головної форми електронного підручника. По цьому номеру можна визначити ім’я html-файлу з якого необхідно прочитати інформацію для полів “Малюнок” та “Фон”;

WriteParameterToHtml(const i: Integer) — призначена для запису параметрів фонового малюнку та кольору фону в HTML-файл. В якості параметру передається порядковий номер запису в таблиці, що розташована в робочій області головної форми електронного підручника. По цьому номеру можна визначити ім’я HTML-файлу в який необхідно записати інформацію з полів “Малюнок” та “Фон”;

Програмний модуль Redactor містить в собі опис класу TForm_Principal, який в свою чергу являється нащадком від класу TForm. Клас TForm_Principal містить в собі опис форми, яка являє собою текстовий редактор і призначена для відображення і редагування створеного системою HTML-файлу. Дана форма запускається в модальному режимі при натисканні користувачем двічі лівою кнопкою миші по області першого поля в таблиці, яка знаходиться в робочій області системи, за умови, що даний HTML-файл створений інструментальною системою створення електронних підручників.

Дана форма виконує функції текстового редактора HTML-документу, компілятора з тексту в HTML-код та декомпілятора з html-коду в текст.

Форма містить панель управління, на який знаходяться кнопки та поля управління процесом створення Web-сторінки. Також вона містить текстове поле, яке являє собою поле редактора тексту HTML.

Даний редактор дозволяє оперувати з такими параметрами символів як:

шрифт символу;

висота символу (в пунктах);

колір символу;

стиль символу (жирний, похилий, підкреслений та закреслений);

вставляти гіперссилки;

вирівнювання тексту (по лівому краю, по центру, по правому краю).

При чому даний редактор дозволяє користувачу використовувати стилі, які були визначені у HTML-файлі та власно-визначені стилі для даного HTML-файлу. Це можна зробити за допомогою поля із списком стилів. Система дозволяє власноручно набирати назву стиля у полі із списком стилів. Якщо введене ім’я не буде відповідати жодному з наявних у системі стилів, то система видасть повідомлення про помилку наступного характеру “Такий стиль в системі не визначений”.

Для зміни шрифту необхідно вибрати потрібний шрифт у полі зі списком шрифтів. Даний список створюється при створенні форми і містить в собі ті шрифти, які встановлені в системі. Система дозволяє власноручно набирати назву шрифту у полі із списком шрифтів. Якщо введена назва не буде відповідати жодному з наявних у системі шрифтів, то система видасть повідомлення про помилку наступного характеру “Такий шрифт в системі не встановлений”.

Для зміни висоти символу необхідно вибрати потрібне значення висоти у полі зі списком висот. Даний список створюється при створенні форми і містить найнеобхідніші значення. Якщо потрібно використати значення висоти, якої немає у списку значень висот, то необхідно власноручно набирати значення висоти у полі із списком висот. Якщо введене значення не буде відповідати тим жодному із значень, яке підтримує система, то остання видасть повідомлення про помилку наступного характеру “Значення висоти повинно знаходитись у межах від 1 до 1638”.

В тілі класу TForm_Principal визначене одне загальнодоступне поле даних FileName. Дане поле містить повний шлях до html-файлу, який відкритий редактором.

В описі класу TForm_Principal також містяться визначення таких загальнодоступних методів, як:

Read_File(const StrFile: AnsiString) — являє собою процедуру, яка здійснює відкриття HTML-файлу, ім’я якого вказано в параметрі StrFile, тобто декомпілювання HTML-коду в текст. При відкриванні HTML-файлу заповнюється масив стилів та поле редактора тексту, таким чином, як можна його побачити за допомогою Web-браузера. Крім того, декомпілятор володіє певними властивостями, що дозволяють йому правильно проаналізувати HTML-код, в якому містяться помилки;

Create_File_HTML(const PathFileName: AnsiString) — являє собою процедуру, яка створює HTML-файл з назвою, що вказана в параметрі PathFileName, тобто компілювання тексту в HTML-код. HTML-файл створюється чітко визначеної структури, тобто він має заголовок, в якому можуть міститись визначення стилів, що будуть використані даним файлом та тіло, в якому буде матеріал або інформація параграфу електронного підручника. В створеному HTML-файлі, завжди кількість відкриваючих тегів дорівнюватиме кількості закриваючих тегів;

Форма редактору містить лінійки меню (menu bar) і відповідних низпадаючих меню (drop-down menus). Останні дозволяють виконати наступні функції:

поточне збереження;

вихід з редактору;

вставка гіперссилки;

скопіювати виділений текст у буфер обміну Windows без знищенням його в полі редактора;

скопіювати виділений текст у буфер обміну Windows із знищенням його в полі редактора;

вставити тест з буферу обміну Windows у вказане місце в поле редактора.

Програмний модуль ViewHtml містить в собі опис класу TForm_View, який в свою чергу являється нащадком від класу TForm. Клас TForm_View містить в собі опис форми, яка дозволяє відобразити HTML-сторінку, яка не створена інструментальною системою створення електронних підручників, подібно Web-браузеру. Дана форма запускається в модальному режимі при натисканні користувачем двічі лівою кнопкою миші по області першого поля в таблиці, яка знаходиться в робочій області системи, за умови, що даний HTML-файл не створений інструментальною системою.

Даний клас описує одне загальнодоступне поле даних FileName, яке містить повний шлях до HTML-файлу, який буде відображатись даною формою подібно до Web-браузеру.

Програмний модуль HyperLink містить в собі опис класу TForm_HyperLink, який в свою чергу являється нащадком від класу TForm. Клас TForm_HyperLink містить в собі опис форми, яка призначена для створення гіперссилки на існуючий HTML-файл. Вона містить наступні елементи:

поле вводу слова, яке являтиме собою гіперссилку;

поле вводу назви гіперссилки;

поле вводу повного шляху до HTML-файлу, на який буде посилатися гіперссилка.


Информация о работе «Інструментальна система створення електронних підручників»
Раздел: Информатика, программирование
Количество знаков с пробелами: 100746
Количество таблиц: 0
Количество изображений: 2

Похожие работы

Скачать
54712
8
9

... швидкий доступ до потрібної інформації і на основі її згенерувати потрібний звіт затверджений дирекцією Хотинської гімназії. 1.2      Вимоги до функціональних характеристик -                 Класний електронний журнал повинен працювати під управлінням операційних систем типу Windows 9.x/NT/XP. -                 Авторизація учителя у класному електронному журналі повинна надавати доступ ті ...

Скачать
189094
6
5

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

Скачать
178729
2
1

... результаты отчета. Они являются кульминационным пунктом отчета и должны быть разумными, хорошо определенными, перечисленными и обоснованными [11].Практика дистанционного образования с использованием Internet Шутилов Ф.В. Особенности заочного образования - в необходимости обеспечить высокий уровень знаний при значительно меньшем времени непосредственного личного общения студентов с преподавателем. ...

Скачать
367716
10
48

... В АБС АКБ «ПРОМІНВЕСТБАНК» ТА ОЦІНКА РІВНЯ ВРАЗЛИВОСТІ БАНКІВСЬКОЇ ІНФОРМАЦІЇ 3.1 Постановка алгоритму задачі формування та опис елементів матриці контролю комплексної системи захисту інформації (КСЗІ) інформаційних об’єктів комерційного банку В дипломному дослідженні матриця контролю стану побудови та експлуатації комплексної системи захисту інформації в комерційному банку представлена у вигляді ...

0 комментариев


Наверх