РАЗРАБОТКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ДЛЯ ИНФОРМАЦИОННОГО КИОСКА ШКОЛЫ - Студенческий научный форум

V Международная студенческая научная конференция Студенческий научный форум - 2013

РАЗРАБОТКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ДЛЯ ИНФОРМАЦИОННОГО КИОСКА ШКОЛЫ

Доробалюк Д.В. 1
1Тобольская социально-педагогическая академия им. Д.И. Менделеева
 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF
На сегодняшний день использование информационных терминалов, или киосков, различного назначения широко распространено. Киосками пользуются множество социальных групп, промышленных организаций, бюджетных учреждений. Среди них железнодорожные и автовокзалы, туристические фирмы, магазины, больницы, музеи, правоохранительные и налоговые органы. С помощью такого оборудования удобно оплачивать штрафы, коммунальные услуги, получать доступ в интернет в общественных местах, осуществлять электронную торговлю, получать информацию нужную в той или иной структуре, которая на тот момент использует то или иное оборудование.

В связи с информатизацией образования стало актуально использование информационных киосков и в школах. Информационные киоски заменяют доски объявлений с расписанием, информационные стенды, позволяют систематизировать информацию об учебном процессе, дают возможность оперативно извещать учеников о событиях и новостях, привлекают внимание родителей будущих первоклассников. То есть информационный киоск может стать централизованным источником информации, затрагивающей все аспекты процесса обучения.

Но без специально разработанного программного обеспечения информационный киоск работать, естественно, не будет. Существующее на сегодняшний день программное обеспечение недостаточно реализует возможности информационных киосков, устанавливаемых в образовательных учреждениях. Кроме того, программное обеспечение дорогостоящее. Отсюда возникает противоречие между актуальностью использования в учебном процессе информационных киосков и недостаточной разработанностью программного обеспечения для их эффективной работы. Именно это и определяет актуальность данного исследования.

Объект исследования – процесс разработки программного обеспечения.

Предмет исследования – структура программного обеспечения для информационных киосков в школе.

Цель исследования – разработать модель программного обеспечения информационного киоска школы и реализовать ее на языке Delphi.

Для достижения цели были выделены следующие задачи исследования:

  1. изучить понятие и структуру информационных киосков;

  2. рассмотреть требования к разработке программного обеспечения;

  3. проанализировать функционирование программного обеспечения для информационных киосков в школах;

  4. построить логическую и физическую модели программного обеспечения для информационных киосков в школах;

  5. реализовать построенные модели программного обеспечения для информационных киосков в школах на языке Delphi.

Теоретико-методологической основой исследования выступают:

  • результаты исследований в области разработки программного обеспечения для информационных киосков (В.М. Довгаль, В.В. Волобуев, В.А. Коваленко, А.Л. Ронжин);

  • результаты исследований в области программирования на языке Delphi (В.В. Фаронов, А.Я. Архангельский).

Для решения поставленных задач были использованы следующие методы исследования:

  • теоретические: изучение, анализ и систематизация специальной литературы и мировых информационных ресурсов по разработке программного обеспечения для информационных киосков в школе;

  • практические: моделирование структуры программного обеспечения, программирование на языке Delphi.

База исследования: МОУ СОШ № 1 пгт. Пойковский, Нефтеюганский район, ХМАО-Югра.

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

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

Глава I. Теоретические основы проектирования и создания программного обеспечения для информационных киосков 1.1. Понятие и структура информационных киосков

Глобальная информатизация, как верно отмечает О.В. Колесникова, становится одним из определяющих факторов в развитии цивилизации в XXI веке [Колесникова О.В. Электронный учебник как средство информатизации общества [Текст] / О.В. Колесникова // Вестник Псковского государственного педагогического университета. – 2010. – № 10. – С. 62-67.].

Развитие процессов информатизации обусловлено использованием информационных и телекоммуникационных технологий во всех сферах человеческой деятельности. Повсеместное использование информационных и телекоммуникационных технологий в образовании привело к тому, что этот процесс стал основой процесса информатизации образования [Гриншкун В.В., Заславская О.Ю.. История и перспективы развития программ информатизации образования [Текст] / В.В. Гриншкун, О.Ю. Заславская // Вестник Московского городского педагогического университета. – 2011. – № 21. – С. 5-13.].

В книге «Новые информационные и коммуникационные технологии в образовании» отмечается, что особое место сегодня комплексная информатизация образования занимает в общей проблеме вхождения России в информационное общество. По прогнозам ученых вхождение в информационное общество нашей страны предполагается в 2050 году, а для США и Японии – в 2020 году, для ведущих стран Европы – в 2030 году. Ускорение вхождения России в информационное общество во многом зависит от темпов и эффективности информатизации в образовании, от упорядочения совершенствования информационно-образовательной среды [Трайнев В.А. Новые информационные коммуникационные технологии в образовании [Текст] / В.А. Трайнев, В.Ю. Теплышев, И.В. Трайнев. – М.: Издательско-торговая корпорация «Дашков и К°», 2009. – 320 с.].

В концепции информатизации сферы образования РФ под информатизацией образования понимается процесс, направленный на реализацию замысла повышения качества содержания образования, проведение исследований и разработок, внедрение, сопровождение и развитие, замену традиционных информационных технологий на более эффективные во всех видах деятельности в национальной системе образования в России. Следовательно, информатизация образования – это процесс замены традиционных информационных технологий на более эффективные для повышения качества содержания образования [Бирюкова Н.С. Роль информатизации в системе современного образования [Текст] / Н.С. Бирюкова // Актуальные проблемы гуманитарных и естественных наук. – 2010. – № 10. – С. 136-139.].

Одним из новшеств информатизации в сфере образования является внедрение и использование информационных киосков, или терминалов, в образовательных учреждениях.

И.В. Кожуханцева, В.В. Стучилин дают следующее определение информационному киоску. Информационный киоск представляет собой устройство, оснащенное дисплеем с сенсорным экраном и специализированным компьютером. Такой киоск дает возможность ознакомиться с продукцией или с услугами учреждения, или компании, где он установлен, найти ответы на интересующие вопросы. Информация, предоставляемая информационным терминалом, является достоверной и актуальной [Error: Reference source not found].

Обычно информационные киоски являются простым и доступным способом получения интересующей информации без посторонней помощи. Кроме того, очень часто сенсорный информационный киоск дает возможность оставить отзыв об учреждении, написать обращение или письмо руководству.

Сенсорные информационные киоски могут быть эффективно использованы. Это связано с тем, что ребенку или взрослому человеку удобнее пользоваться сенсорным монитором, чем мышкой и клавиатурой [Коваленко В.А. Сенсорные киоски для библиотечных выставок [Текст] / В.А. Коваленко // Культура и цивилизация. – 2012. – № 2-3. – С. 140-148.].

К информации об образовательном процессе относится информация о [Нормативная база Школы информатизации. Метод.пособие [Электронный документ] // http://pedsovet.org/component/ option,com_mtree/task,viewlink/link_id,3232/Itemid,118/. – 29.11.2012]:

  • людях, их группах и организациях, имеющих отношение к образовательному процессу (классах, группах второй половины дня, проектных группах и т.д.);

  • структуре, организации и планировании образовательного процесса;

  • ресурсах образовательного процесса;

  • ходе образовательного процесса, включая содержание образовательного процесса, работы учащихся и учителей;

  • проведенных занятиях (реализации расписания)

и связях между ними.

В.А. Коваленко выделил основные принципы работы сенсорного информационного терминала [Коваленко В.А. Сенсорные киоски для библиотечных выставок [Текст] / В.А. Коваленко // Культура и цивилизация. – 2012. – № 2-3. – С. 140-148.]:

  • возможность быстро получить информацию;

  • возможность получить консультацию, не прибегая к помощи персонала;

  • возможность получить информацию о месте расположения той или иной информации;

  • возможность получить подробную информацию;

  • упрощения получения информации за счет использования технологий сканирования;

  • возможность преодолеть языковой барьер.

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

В результате работы с терминалом [Сенсорные киоски в школе [Электронный ресурс] // http://unitsys.ru/site/solutions/shkoli. – 29.11.2012.]:

  1. повышается уровень компьютерной грамотности учителей и учащихся. Педагогам в возрасте зачастую тяжело дается освоение компьютера, без этого сложно совершенствовать свои педагогические навыки и эффективно строить учебный процесс. Даже неподготовленный пользователь легко справится с интуитивно понятным интерфейсом и найдет нужную ему информацию в кратчайшие сроки в любое удобное ему время. Терминал поможет избавиться от компьютерной фобии;

  2. у школьников формируется положительная мотивация к обучению, появляется интерес к самообразованию. При удачном подборе дополнительном и познавательном материале каждый найдет в терминале что-то интересное для себя, то, о чем он захочет получить больше информации. Например, лучше увидеть физический опыт или реконструкцию исторических событий, чем прочитать о них в учебниках. Заинтересовавшись деталями, ученик сам охотно прочитает о них (например, на информационном портале) или спросит учителя. Терминал может проводить викторины, тесты и т.п. По общему рейтингу и результатам конкурсов ученик сможет соревноваться с одноклассниками и получать награды за первые места;

  3. повышается качество образования за счет появления альтернативного источника знаний, который вызывает интерес у школьников. Мотивация к обучению и интерес к знаниям повысят качество образования;

  4. появляется дополнительная возможность раскрыть таланты учеников. Терминал даст возможность ученикам показать свои работы широкому кругу зрителей и получить обратную связь от них. Стихотворения, рисунки, видеоработы, музыка, компьютерные программы и многое другое можно будет разместить на терминале;

  5. вся полезная информация о деятельности школы в одном месте.

Киоски разделяются на две категории – сервисные и исследовательские. Сервисные киоски предоставляют строго ограниченную транзакцию или услугу. Сюда входят банкоматы, автоматы по продаже билетов в аэропортах, на железнодорожных и автобусных вокзалах, а также в некоторых кинотеатрах. Даже автозаправку или кофе-автомат можно рассматривать как простейший сервисный киоск. Пользователи сервисных киосков имеют вполне конкретные цели: получить наличные, билет, пачку жевательной резинки или какую-то конкретную информацию. Единственное, что их интересует, – по возможности быстро и без проблем достичь своих целей.

Исследовательские же киоски обычно стоят в музеях. Образовательные развлекательные киоски не находятся в центре внимания посетителей, но предоставляют дополнительную информацию и новые возможности для тех, кто пришел посмотреть экспозицию (хотя есть несколько музеев, таких как, скажем, музей ExperienceMusicProject в Сиэтле, где интерактивные киоски являются основой некоторых экспонатов). Исследовательские киоски отличаются от сервисных тем, что пользователь не ожидает от них чего-либо конкретного. Пользователем может двигать любопытство, или смутное желание развлечься, или стремление повысить свой культурный уровень, но у него, скорее всего, нет определенной конечной цели. (С другой стороны, он может захотеть найти кафе или уборную – и эти цели можно поддерживать наряду с открытыми целями.) В исследовательских киосках привлекать пользователя должен сам акт исследования. Следовательно, интерфейс киоска должен быть не только четким и снабженным легко осваиваемой навигацией, но и эстетически привлекательным, то есть приятным на вид (и, возможно, на слух). Каждое окно должно представлять интерес само по себе, а также стимулировать пользователя к дальнейшему исследованию системы [Купер А., Рейман Р., Кронин Д. Алан Купер об интерфейсе. Основы проектирования взаимодействия [Текст] / А. Купер, Р. Рейман, Д. Кронин. – Пер. с англ. – СПб.: Символ-Плюс, 2009. – 688 с.].

Кроме внутреннего содержания необходимо отметить, что информационные киоски отличаются антивандальным исполнением. Это позволяет использовать их там, где обычное бытовое или офисное сенсорное оборудование быстро выйдет из строя. Установленные внутри система вентиляции, уплотнители и фильтрация воздуха позволяют производить работу в круглосуточном режиме, защищая от перегрева.

Киоски могут быть настольными, напольными, настенными.

А. Купер, Р. Рейман, Д. Кронин отмечают, что в информационных киосках следует по возможности отказываться от текстового ввода. Сенсорные экраны, если позволяет размер, могут отображать виртуальные клавиатуры, но каждая клавиша должна быть достаточно велика, чтобы пользователю было сложно опечататься. В сенсорных экранах, кроме того, следует избегать идиом, связанных с перетаскиванием. Простые идиомы прикосновения к объекту легче поддаются контролю и более очевидны для новичков (при наличии ярко выраженного назначения) [Купер А., Рейман Р., Кронин Д. Алан Купер об интерфейсе. Основы проектирования взаимодействия [Текст] / А. Купер, Р. Рейман, Д. Кронин. – Пер. с англ. – СПб.: Символ-Плюс, 2009. – 688 с.].

Также они могут оснащаться дополнительным оборудованием, значительно расширяющим его возможности:

  • датчиками движения;

  • приемниками купюр и монет;

  • устройством вывода информации на печать;

  • средствами для аудио и видео связи;

  • оборудованием для обработки пластиковых карт.

Таким образом, информационные киоски выполняют не только информационную, но и познавательную функции, а также функцию взаимодействия.

1.2. Программное обеспечение для информационных киосков. Требования к разработке программного обеспечения

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

Функционирование любого компьютера требует различных видов обеспечения: математического, алгоритмического, информационного, программного, технологического, лингвистического, организационного, эргономического, правового и др. Важнейшее значение имеет программное обеспечение (ПО) ЭВМ. Программное обеспечение (от англ. software) – это совокупность программных средств для обеспечения нормальной работы ЭВМ. ПО любого компьютера в основном определяет его интеллектуальные возможности, профессиональную направленность, широту и полноту осуществления устройств (блоков). Комплекс ПО должен охватывать множество функций ЭВМ, таких, как обеспечение организации решения функциональных задач пользователя, организация диалога пользователя и ЭВМ, управление базами данных, трансляция программ, осуществление сервисных программ, облегчающих работу на компьютере. Развитость ПО определяет функциональную полноту и разнообразие сервисной поддержки пользователя [Острейковский В.А. Информатика. Теория и практика: Учеб.пособие [Текст] / В.А. Острейковский, И.В. Полякова. – М.: Издательство Оникс, 2008. – 608 с.].

Производство ПО сегодня – крупнейшая отрасль мировой экономики, в которой занято около трех миллионов специалистов, называющих себя программистами, разработчиками ПО и т.п. Еще несколько миллионов человек занимают рабочие места, напрямую зависящие от благополучия корпоративных информационных подразделений либо от производителей ПО, таких, как корпорации Microsoft или IBM.

Накопленный к настоящему времени опыт создания систем ПО показывает, что это логически сложная, трудоемкая и длительная работа, требующая высокой квалификации участвующих в ней специалистов. Однако до настоящего времени создание таких систем нередко выполняется на интуитивном уровне с применением неформализованных методов, основанных на искусстве, практическом опыте, экспертных оценках и дорогостоящих экспериментальных проверках качества функционирования ПО. Кроме того, в процессе создания и функционирования ПО потребности пользователей постоянно изменяются или уточняются, что еще более усложняет разработку и сопровождение таких систем.

Ю.С. Избачков и В.Н. Петров отмечают, что хотя информационные системы являются обычным программным продуктом, они имеют ряд существенных отличий от стандартных прикладных программ и систем. При разработке информационной системы приходится решать две основные задачи: разработка базы данных, предназначенной для хранения информации; разработка графического интерфейса пользователя клиентских приложений [Избачков Ю.С., Петров В.Н. Информационные системы: Учебник для вузов [Текст] / Ю.С. Избачков, В.Н. Петров. – 2-е изд. – СПб.: Питер, 2006. – 656 с.].

Понятие жизненного цикла является одним из базовых понятий методологии проектирования информационных систем. Жизненный цикл информационной системы представляет собой непрерывный процесс, начинающийся с момента принятия решения о создании информационной системы и заканчивается в момент полного изъятия ее из эксплуатации [Вендров А.М. Проектирование программного обеспечения экономических информационных систем: Учебник [Текст] / А.М. Вендров. – 2-е изд., перераб. и доп. – М.: Финансы и статистика, 2006. – 544 с.].

Жизненный цикл информационной системы охватывает все стадии и этапы ее создания, сопровождения и развития:

  • исследование предметной области с последующим формированием функциональной и информационной моделей объекта, для которого предназначена информационная система;

  • проектирование системы, заключающееся в разработке проектных решений, удовлетворяющих всем требованиям ТЗ;

  • разработку системы (в том числе программирование и тестирование прикладных программ на основании проектных спецификаций подсистем, выделенных на стадии проектирования);

  • тестирование информационной системы и выявление сбоев с последующим их устранением;

  • эксплуатацию системы и ее сопровождение;

  • развитие системы.

Жизненный цикл протекает в соответствии с выбранной моделью ЖЦ.

Существует целый ряд стандартов, регламентирующих ЖЦ ПО, а в некоторых случаях и процессы разработки. Среди наиболее известных стандартов можно выделить следующие:

  • ГОСТ 34.601-90 – распространяется на автоматизированные системы и устанавливает стадии и этапы их создания. Кроме того, в стандарте содержится описание содержания работ на каждом этапе. Стадии и этапы работы, закрепленные в стандарте, в большей степени соответствуют каскадной модели жизненного цикла .

  • ISO/IEC 12207:1995 – стандарт на процессы и организацию жизненного цикла. Распространяется на все виды заказного ПО. Стандарт не содержит описания фаз, стадий и этапов.

  • Custom Development Method (методика Oracle) по разработке прикладных информационных систем – технологический материал, детализированный до уровня заготовок проектных документов, рассчитанных на использование в проектах с применением Oracle. Применяется CDM для классической модели ЖЦ (предусмотрены все работы/задачи и этапы), а также для технологий «быстрой разработки» (Fast Track) или «облегченного подхода», рекомендуемых в случае малых проектов.

  • Rational Unified Process (RUP) предлагает итеративную модель разработки, включающую четыре фазы: начало, исследование, построение и внедрение. Каждая фаза может быть разбита на этапы (итерации), в результате которых выпускается версия для внутреннего или внешнего использования. Прохождение через четыре основные фазы называется циклом разработки, каждый цикл завершается генерацией версии системы. Если после этого работа над проектом не прекращается, то полученный продукт продолжает развиваться и снова минует те же фазы. Суть работы в рамках RUP – это создание и сопровождение моделей на базе UML.

  • Microsoft Solution Framework (MSF) сходна с RUP, так же включает четыре фазы: анализ, проектирование, разработка, стабилизация, является итерационной, предполагает использование объектно-ориентированного моделирования. MSF в сравнении с RUP в большей степени ориентирована на разработку бизнес-приложений.

  • Extreme Programming (XP). Экстремальное программирование (самая новая среди рассматриваемых методологий) сформировалось в 1996 году. В основе методологии командная работа, эффективная коммуникация между заказчиком и исполнителем в течение всего проекта по разработке ИС, а разработка ведется с использованием последовательно дорабатываемых прототипов.

  • Стандарт ISO/IEC серии 15288.

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

Клиент-серверная технология смещает фокус распределения информации в сети в сторону специально выделенных серверов. Данные сервера несут основную нагрузку по хранению информации, производят ее обработку, предоставляя клиенту готовые результаты, а стационарные терминалы служат для визуализации необходимой для пользователя информации.

Клиент-серверная технология является более гибкой и облегчает контроль за распределением информационных ресурсов. Поэтому для построения информационных систем наиболее целесообразно использовать клиент-серверную архитектуру, основанную на web-технологии, которая позволяет отображать большие объемы информации, облегчая ее структурирование, а также объединить территориально распределенные хранилища информации (Рис. ) [Довгаль В.М., Волобуев В.В. Стационарный терминал как средство визуализации документальной информации в образовательном учреждении [Текст] / В.М. Довгаль, В.В. Волобуев // Известия Юго-Западного государственного университета. – 2009. – № 3. – С. 54-58.].

Таким образом, рассмотренная концепция архитектуры информационных систем требует построения компьютерной сети на основе стандарта OSI, используя комбинированные технологии ETHERNET локальных и глобальных сетей под единым управлением INTRANET.

Рис. . Архитектура информационной системы

А.Л. Ронжин разработал программно-аппаратную архитектуру многомодального информационно-справочного киоска, отличающуюся использованием аудиовизуальных коммуникативных каналов для имитации естественного интерфейса и организации диалога с пользователем в реальных условиях эксплуатации [Ронжин А.Л. Методы и программные средства многоканальной дистанционной обработки речи и их применение в интерактивных многомодальных приложениях: Автореф. дис. … к.тех.н. [Текст] / А.Л. Ронжин. – Санкт-Петербург, 2010. – 34 с.]. Данные киоски ориентированы на неподготовленных пользователей разного пола, возраста, роста. Они распознают присутствие клиента и вербально взаимодействуют с ним на естественном языке.

Основными модулями архитектуры такого киоска являются [Error: Reference source not found]:

  1. видеообработка с технологией компьютерного зрения для распознавания положения тела, лица и отдельных органов лица пользователя;

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

  3. система аудиовизуального синтеза русской речи (говорящая голова), применяемая для виртуального помощника-аватара;

  4. интерактивный графический пользовательский интерфейс на базе сенсорного экрана;

  5. менеджер диалога и диалоговая модель, включающие информационные базы данных и систему управления стратегиями диалога.

Таким образом, существуют различные программные обеспечения для информационных киосков.

1.3. Анализ функционирования программного обеспечения для информационных киосков в школах

Проанализируем функционирование нескольких видов программного обеспечения (ПО) для информационных киосков в школах.

На сегодняшний день в Интернет есть множество предложений по продаже информационных киосков разного назначения, в том числе и для образовательных учреждений. С информационным киоском очень часто предлагают и готовое программное обеспечение. Рассмотрим несколько из них.

Информационно-сервисная система (ИСС) UTSSchool разработана специально для образовательных учреждений и, по словам разработчиков, внедрена более чем в десяти школах в разных регионах России. ИИС имеет интуитивно понятный интерфейс, позволяющий даже неопытному пользователю легко и быстро найти необходимую ему информацию (Рис. ).

UTSSchool позволяет отображать:

  • новости, объявления, календарь мероприятий;

  • информацию об учебном заведении (описание учебного заведения, история, контакты, администрация, учительский состав);

  • расписание уроков, звонков, дополнительных занятий, секций или кружков;

  • различные голосования и опросы;

  • видео-материал по учебной тематике;

  • инструкции по безопасности (пожарная, при терактах и т.д.);

  • информацию для родителей – подготовка к школе, правила приема детей в первый класс, меню столовой, электронный журнал и т.д.;

  • сайт учебного заведения или портал «сетевой город» посредством специализированного браузера UTSBrowser.

Рис. . Внешний вид программного обеспечения UTSSchool

В информационно-сервисной системе UTSSchool реализована функция обратной связи – любой желающий может напрямую задать интересующий его вопрос директору школы.

Дополнительно в системе UTSSchool могут быть реализованы следующие функции:

  • возможность сохранения документов на flash-носитель или отправки на электронную почту прямо с терминала;

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

UTSSchool работает под операционной системой Windows 7 (32 bit). Для работы программного обеспечения терминала в системе должны быть установлены следующие компоненты:

  • Microsoft .NET Framework 3.5 SP1;

  • Microsoft .NET Framework 4.0;

  • Adobe Flash Player 10 ActiveX;

  • DirectX нениже 9.0;

  • Microsoft Visual C++ 2010 Redistributable Package;

  • K-LiteCodecPack.

Стоимость одной лицензии UTSSchool – 20000 рублей [Сенсорные киоски в школе [Электронный ресурс] // http://unitsys.ru/site/solutions/shkoli. – 29.11.2012.].

Справочно-информационная система «Гид учащегося» (Рис. ) разработана специально для учебных заведений – школ и вузов. Она решает следующие задачи:

  • представление информации об учебном заведении;

  • демонстрация расписания занятий, его изменение через удаленное сетевое подключение;

  • предоставление каталога факультетов и их описания;

  • оперативное информирование учащихся о любых событиях и мероприятиях, проходящих в учебном заведении;

  • получение справки о графике зачетов и экзаменов;

  • предоставление в отдельном разделе информации для абитуриентов: списка документов для приема в учебное заведение, расписание вступительных экзаменов и их итоговые результаты;

  • реализация обратной связи: пользователи системы могут оставлять свои сообщения руководству учебного заведения и получать на них ответы, а также знакомиться с ответами на часто задаваемые вопросы.

Рис. . Пример применения системы «Гид учащегося»

Дополнительно в системе «Гид учащегося» могут быть реализованы такие функции, как:

  • персональная страница учащегося, на которой представлена его личная учебная информация;

  • электронный каталог библиотеки, поиск книг и оформление резерва;

  • анкетирование учащихся.

В комплект поставки информационной системы входит одна лицензия для сервера и три лицензии для сенсорных киосков. Для полноценной работы системы сенсорные киоски и сервер должны быть соединены по локальной сети. Возможная доработка системы в соответствии с требованиями заказчика [Error: Reference source not found].

Электронная школа LMS [Система управления обучением «LMS Школа» [Электронный ресурс] // http://www.lms-school.ru/Files/booklet_LMS-School.pdf - 01.12.2012.] – это комплексное средство автоматизации учебных занятий, использующее интернет для обеспечения доступа родителей и учащихся к информации об учебном процессе.

Данный продукт разработан при участии лучших педагогов России. Программа создавалась совместно с Департаментом образования и курировалась службой Министерства обороны РФ.

Система управления обучением «LMS Школа» включает в себя подсистему «LMS «Школа»: Информационный киоск» (Рис. ). Для ее установки необходим информационный терминал, оснащенный сенсорным экраном, подключенный к локальной вычислительной сети учебного заведения.

Рис. . «LMS «Школа»: Информационный киоск»

Технические характеристики:

  • ОС Windows XP ивыше / Alt Linux;

  • от 512 Мб ОЗУ;

  • сетевая карта (LAN).

Благодаря информационному киоску можно узнать последние изменения в плане проведения информатизации. Также на сенсорном экране можно посмотреть расписание уроков и индивидуальных занятий, домашние задания, оценки, объявления, отчеты о проведенных мероприятиях и многое другое.

Преимущество данной системы в том, что она представляет комплексное решение для автоматизации всей деятельности школы.

ЗАО «Ниеншанц» – компания, которая разработала данный программный продукт, кроме всего прочего, предлагает услуги по сопровождению, которые включают:

  • неограниченные консультации по круглосуточному телефону «горячей линии»;

  • обновление версий программного обеспечения LMS «Школа».

Таким образом, существует много видов программного обеспечения для информационных киосков школ, но все они дорогостоящие.

Выводы по первой главе

На основе анализа литературы было выделено рабочее определение понятия информационного киоска. Информационный киоск представляет собой устройство, оснащенное дисплеем с сенсорным экраном и специализированным компьютером, которые дает возможность ознакомиться с продукцией или с услугами учреждения, где он установлен.

Основными принципами работы сенсорного информационного терминала являются:

  • возможность быстро получить информацию, в том числе и подробную;

  • возможность получить консультацию, не прибегая к помощи персонала;

  • упрощение получения информации за счет использования технологий сканирования;

  • возможность преодолеть языковой барьер.

Выделены следующие виды информации об образовательном процессе:

  • информация о людях и их группах, имеющих отношение к образовательному процессу;

  • информация о структуре, организации и планировании, а также ресурсах образовательного процесса;

  • информация о ходе образовательного процесса, включая содержание образовательного процесса, работы учащихся и учителей;

  • информация о проведенных занятиях.

Вся информация связана между собой.

На основе анализа, существующего программного обеспечения для информационных киосков были выделены основные требования к его разработке и структура существующего программного обеспечения. Данный анализ показал, что существующее программное обеспечение информационных киосков не в полной мере позволяет организовать учебно-воспитательный процесс, и все они достаточно дорогостоящие.

Глава II. Практическая реализация программного обеспечения для функционирования информационных киосков в школах 2.1. Логическая модель программного обеспечения информационного киоска школы

Под информационной системой обычно понимается прикладная программная подсистема, ориентированная на сбор, хранение, поиск и обработку текстовой и/или фактографической информации. Подавляющее большинство информационных систем работает в режиме диалога с пользователем [Избачков Ю.С., Петров В.Н. Информационные системы: Учебник для вузов [Текст] / Ю.С. Избачков, В.Н. Петров. – 2-е изд. – СПб.: Питер, 2006. – 656 с.].

Информационная система должна соответствовать требованиям гибкости, надежности, эффективности и безопасности.

Гибкость – способность системы к адаптации и дальнейшему развитию. Подразумевает возможность приспособления ИС к новым условиям, новым потребностям предприятия. Выполнение этих условий возможно, если на этапе разработки ИС использовались общепринятые средства и методы документирования, так что попрошествии определенного времени сохранится возможность разобраться в структуре системы и внести в нее соответствующие изменения, даже если все разработчики или их часть по каким-либо причинам не смогут продолжить работу. Любая ИС рано или поздно морально устареет, и встанет вопрос о ее модернизации или полной замене. Разработчики ИС, как правило, не являются специалистами в прикладной области, для которой разрабатывается система. Участие в модернизации или создании новой системы той же группы проектировщиков существенно сократит сроки модернизации. Вместе с тем возникает риск применения устаревших решений при модернизации системы. Рекомендация в таком случае одна – внимательнее относиться к подбору разработчиков ИС.

Надежность ИС подразумевает ее функционирование без искажения информации, потери данных по «техническим причинам». Требование надежности обеспечивается созданием резервных копий хранимой информации, выполнения операций протоколирования, поддержанием качества каналов связи и физических носителей информации, использованием современных программных и аппаратных средств. Сюда же следует отнести защиту от случайных потерь информации в силу недостаточной квалификации персонала.

Эффективность. Система является эффективной, если с учетом выделенных ей ресурсов она позволяет решать вложенные на нее задачи в минимальные сроки. В любой системе оценка эффективности будет производится заказчиком, исходя из вложенных в разработку средств и соответствия представленной ИС его ожиданиям. Негативной оценки эффективности ИС со стороны заказчика можно избежать, если представители заказчика будут привлекаться к проектированию системы на всех его стадиях. Такой подход позволяет многим конечным пользователям уже на этапе проектирования адаптироваться к изменениям условий работы, которые иначе были бы приняты враждебно. Активное сотрудничество с заказчиком с ранних этапов проектирования позволяет также уточнить потребности заказчика. Эффективности системы обеспечивается оптимизацией данных и методов их обработки, применением оригинальных разработок, идей, методов проектирования. Не следует также забывать о том, что работать с системой придется обычным людям, являющимся специалистами в своей предметной области, но зачастую обладающими весьма средними навыками в работе с компьютерами. Интерфейс ИС должен быть интуитивно понятен. В свою очередь, разработчик-программист должен понимать характер выполняемых конечным пользователем операций. Рекомендациями в этом случае могут служить повышение эффективности управления разработкой ИС, улучшение информированности разработчиков о предметной области.

Безопасность – свойство системы, в силу которого посторонние лица не имеют доступа к информационным ресурсам организации, кроме тех, которые для них предназначены. Защита информации от постороннего доступа обеспечивается управлением доступом к ресурсам системы, использованием современных программных средств защиты информации. Требование безопасности обеспечивается современными средствами разработки ИС, современной аппаратурой, методами защиты информации, применением паролей и протоколированием, постоянным мониторингом состояния безопасности ОС и средств их защиты [Избачков Ю.С., Петров В.Н. Информационные системы: Учебник для вузов [Текст] / Ю.С. Избачков, В.Н. Петров. – 2-е изд. – СПб.: Питер, 2006. – 656 с.].

Одним из ключевых моментов создания информационной системы является представление информации в виде информационной модели предметной области.

Предметная область – это часть реального мира, которая рассматривается с определенной точки зрения, подлежит модельную отражению с целью ее автоматизации. Предметная область состоит из множества структурных единиц (например, в предприятии есть цеха, администрация, бухгалтерия и т.д.). Каждая такая структурная единица характеризуется множеством объектов и процессов, использующих объекты, а также множеством пользователей, которые характеризуются различными взглядами на предметную область [Ечмаева Г.А. Информационные системы. Лабораторный практикум: Учеб.-метод. пособие для студ. пед. вузов [Текст] / Г.А. Ечмаева. – 2-е изд. – Тобольск: ТГСПА им. Д.И. Менделеева, 2011. – 209 с.].

Информационная модель предметной области – это совокупность структур данных и операций их обработки.

При создании базы данных предметную область принято рассматривать в виде трех представлений:

  1. представление предметной области в том виде, как она реально существует;

  2. представление предметной области в том виде, как ее воспринимает специалист по консалтинговым услугам;

  3. представление предметной области в том виде, как она может быть описана с помощью терминов моделирования.

Данные, используемые для описания предметной области, представляются в виде трехуровневой схемы (так называемая модель ANSI/SPARC).

Внешнее представление (внешняя модель) является совокупностью требований к данным со стороны некоторой конкретной функции, выполняемой пользователем. Концептуальная модель является полной совокупностью всех требований к данным, полученной из пользовательских представлений о реальном мире. В результате отображения концептуальной модели на СУБД строится логическая модель данных. В процессе отображения концептуальной модели подбирается такая СУБД, которая в полной мере может удовлетворить заявленные требования. Если выполнить требования не представляется возможным, то концептуальные требования должны быть снижены. Внутренняя модель – это физическое построение базы данных с учетом особенностей конкретной СУБД.

Отсюда вытекают основные этапы, на которые разбивается процесс моделирования данных информационной системы [Ечмаева Г.А. Информационные системы. Лабораторный практикум: Учеб.-метод. пособие для студ. пед. вузов [Текст] / Г.А. Ечмаева. – 2-е изд. – Тобольск: ТГСПА им. Д.И. Менделеева, 2011. – 209 с.]:

1. Концептуальное моделирование – сбор, анализ и редактирование требований к данным. В итоге должны быть сформированы обобщенные требования к данным со стороны всех предполагаемых пользователей.

2. Логическое моделирование – преобразование требований к данным в структуры данных. Логическая модель – это версия концептуальной модели, которая может быть реализована средствами СУБД. Отметим, что логическая модель данных, как правило, не связана с конкретной СУБД и не учитывает технические особенности конкретных платформ, применяемых при ее последующей физической реализации. Логическая модель отражает логические связи между атрибутами отношений вне зависимости от их содержания и среды хранения. Это условие называется первым уровнем независимости данных. Логическая модель может быть реляционной, иерархической (древовидная), сетевой (все объекты связаны между собой).

3. Физическое моделирование – определение особенностей размещения данных, методов доступа, технику индексирования и т.д. На выходе получаем СУБД-ориентированную структуру данных. При переходе от логической модели к физической модели обеспечивается выполнение условия: концептуальная модель допускает некоторое расширение требований к базе данных без переделки самой базы данных. Это условие называется вторым уровнем независимости данных. Второй уровень независимости данных достигается, как правило, за счет хорошей техники и дисциплины программирования.

Рассмотрим составленную автором ВКР логическую модель программного обеспечения для информационного киоска школы (рис. 5).

Необходимо оговорить отличие и связь понятий «информационная система» и «программное обеспечение». Отличие данных понятий рассматривалось в первой главе данного исследования, а связь заключается в том, что программное обеспечение – это совокупность программ для реализации целей и задач информационных систем. Таким образом, понятие информационной системы шире понятия программного обеспечения. Но основные этапы конструирования программного обеспечения совпадают с этапами проектирования информационных систем.

На главной странице отображается список нескольких последний новостей, а также переходы к разделам «Новости», «Ученики», «Родители», «Будущие первоклассники», «Обратная связь», «Выход на сайт».

Каждый из разделов содержит свои подразделы, позволяющие получить ту или иную информацию. Так, например, в разделе «Новости» будут размещены разного рода объявления и опросы для учащихся, родителей, учителей.

Личный кабинет ученика позволяет просматривать электронный школьный дневник, проверить свою успеваемость и т.п. Расписание звонков и расписание уроков можно обновлять с помощью удаленного доступа. Подраздел «Жизнь школьника» содержит отчеты о разного рода мероприятиях, подготовленных с участием учащихся школы. Подраздел «ЕГЭ» содержит сведения для учащихся 11 классов относительно подготовки к единому государственному экзамену.

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

Рис. . Логическая модель программного обеспечения информационного киоска школы

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

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

Кроме этого, с информационного киоска можно выйти на сайт школы.

Таким образом, проектируемая логическая модель программного обеспечения информационного киоска школы предполагает возможность использования данного терминала не только учениками, но и их родителями, а также гостями школы.

2.2. Физическая модель программного обеспечения информационного киоска школы

Логическая модель данных предметной области обеспечивает разработчикам понимание структуры данных. После ее разработки следует приступать к моделированию физической структуры системы хранения выявленных объектов данных, то есть к разработке физической модели данных. По одной логической модели может быть построено несколько физических моделей. Физическая модель данных определяет способы размещения данных в среде хранения и способы доступа к этим данным, которые поддерживаются на физическом уровне. Реализацией физической модели является конкретная программа. Физическая модель данных описывает данными средствами конкретной среды реализации (СУБД, языки программирования) и является компьютерно-ориентированной. Физическая модель данных оперирует категориями, касающимися организации внешней памяти и структур хранения, используемых в данной операционной среде. В настоящий момент в качестве физических моделей используются различные методы размещения данных, основанные на файловых структурах: это организация файлов прямого (и последовательного) доступа, индексных файлов, файлов, использующих различные методы хеширования, взаимосвязанных файлов и т.д. Физические модели данных, основанные на страничной организации, являются наиболее перспективными [Ечмаева Г.А. Информационные системы. Лабораторный практикум: Учеб.-метод. пособие для студ. пед. вузов [Текст] / Г.А. Ечмаева. – 2-е изд. – Тобольск: ТГСПА им. Д.И. Менделеева, 2011. – 209 с.].

Автор ВКР предполагает использовать для реализации физической модели систему программирования Delphi. Именно поэтому физическая модель составлена с ориентацией на эту систему.

Delphi представляет собой систему программирования. Как любая подобная система, Delphi предназначена для разработки программ и имеет две характерные особенности: создаваемые с ее помощью программы могут работать не только под управлением Windows, а сама она относится к классу инструментальных средств ускоренной разработки программ (RapidApplicationDevelopment, RAD) [Избачков Ю.С., Петров В.Н. Информационные системы: Учебник для вузов [Текст] / Ю.С. Избачков, В.Н. Петров. – 2-е изд. – СПб.: Питер, 2006. – 656 с.].

В.В. Фаронов отмечает, что система Delphi завоевала себе репутацию самого эффективного средства разработки приложений баз данных, то есть программ, обслуживающих электронные хранилища информации. Эта репутация определяется тремя обстоятельствами: высокопроизводительной машиной доступа к данным разного формата (BorlandDatabaseEngine, BDE), наличием многочисленных компонентов и технологий, ориентированных на эту сферу применения, и поставкой вместе с Delphi компактного, мощного и простого в администрировании сервера баз данных InterBase [Избачков Ю.С., Петров В.Н. Информационные системы: Учебник для вузов [Текст] / Ю.С. Избачков, В.Н. Петров. – 2-е изд. – СПб.: Питер, 2006. – 656 с.].

На Error: Reference source not foundпредставлена физическая модель, с помощью которой можно реализовать программное обеспечение для информационного киоска школы на языке программирования Delphi.

Программа состоит из модулей. Модули – это программные единицы, предназначенные для размещения отдельных частей программы. С помощью содержащегося в них программного кода реализуется вся поведенческая сторона программы [Фаронов В.В. Delphi. Программирование на языке высокого уровня: Учебник для вузов [Текст] / В.В. Фаронов. – СПб.: Питер, 2007. – 640 с.].

Главной странице соответствует модуль GlavMenu.pas. На форме FormGlavMenu предполагается разместить несколько компонентов:

  • RichEdit1 – для вывода списка нескольких последних новостей;

  • 6 компонентов SpeedButton1-6 – кнопки для переходов к разделам «Новости», «Ученики», «Родители», «Будущие первоклассники», «Обратная связь», «Выход на сайт школы»;

  • Label1 – для подписи компонента RichEdit1;

  • Image1-3 – невидимые компоненты для пользователя, с помощью которых программист или системный администратор сможет перейти в режим администратора или закрыть программу;

  • Button1-16 – появляющиеся кнопки для перехода к подразделам разделов, указанных выше (согласно логической модели).

Раздел «Новости» содержит два подраздела – «Объявления» и «Опросы».

Подразделу «Объявления» соответствует модуль Unit4.pas. На форме FormObyavl предполагается разместить следующие компоненты:

  • RichEdit1 – для вывода на экран объявлений;

  • Button1 – кнопка «Назад».

Подраздел «Опросы» на данный момент находится в стадии разработки. Данный раздел нужно делать согласно конкретным пожеланиям школы.

Раздел «Ученики» содержит четыре подраздела – «Личный кабинет», «Расписание звонков/уроков», «Жизнь школьника», «ЕГЭ».

Подразделу «Личный кабинет» соответствует модуль LichKab.pas. На форме FormLichKab предполагается разместить следующие компоненты:

  • Button1 – кнопка «Назад»;

  • Label1 – для вывода ФИО учащегося;

  • OleContainer1 – для вывода оценок и пожеланий, замечаний учителей.

Подразделу «Расписание звонков/уроков» соответствует модуль Rasp.pas. На форме FormRasp предполагается разместить следующие компоненты:

  • Panel1 – контейнер для ровного расположения кнопок и надписей;

  • RichEdit1-2 – для вывода на экран расписания звонков и расписания уроков;

  • Splitter1 – для разделения подразделов «Расписание звонков» и «Расписание уроков»;

  • Label1-2 – подписи компонентов RichEdit (1-2);

  • Button1 – кнопка «Назад».

Подразделу «Жизнь школьника» соответствует модуль Zhizn.pas. На форме FormZhizn предполагается разместить следующие компоненты:

  • Button1 – кнопка «Назад»;

  • OleContainer1 – компонент для вывода событий школы, возможно размещение картинок.

Подразделу «ЕГЭ» соответствует модуль Ege.pas. На форме FormEge предполагается разместить следующие компоненты:

  • Button1 – кнопка «Назад»;

  • OleContainer1 – компонент для вывода информации об едином государственном экзамене и подготовке к нему, возможно размещение картинок.

Раздел «Родители» содержит три подраздела – «Родительский комитет, расписание родительских собраний», «Личный кабинет», «Дополнительное образование».

Подразделу «Родительский комитет, расписание родительских собраний» соответствует модуль Kom.pas. На форме FormKom предполагается разместить следующие компоненты:

  • Panel1 – контейнер для ровного расположения кнопок и надписей;

  • RichEdit1-2 – для вывода на экран составов родительских комитетов и расписания родительских собраний;

  • Splitter1 – для разделения подразделов «Родительский комитет» и «Расписание родительских собраний»;

  • Label1-2 – подписи компонентов RichEdit (1-2);

Button1 – кнопка «Назад».

Подразделу «Личный кабинет» соответствует модуль LichKab.pas. На форме FormLichKab предполагается разместить следующие компоненты:

  • Button1 – кнопка «Назад»;

  • Label1 – для вывода ФИО учащегося;

  • OleContainer1 – для вывода оценок и пожеланий, замечаний учителей.

Подразделу «Дополнительное образование» соответствует модуль DopObr.pas. На форме FormDopObr предполагается разместить следующие компоненты:

  • RichEdit1 – для вывода на экран информации о дополнительном образовании;

  • Button1 – кнопка «Назад».

Раздел «Будущие первоклассники» содержит три подраздела – «День открытых дверей», «Подготовка к школе», «Направления обучения».

Подразделу «День открытых дверей» соответствует диалоговое окно с сообщением даты, времени проведения дня открытых дверей.

Подразделу «Подготовка к школе» соответствует модуль Podg.pas. На форме Form1 предполагается разместить следующие компоненты:

  • RichEdit1 – для вывода на экран информации о мероприятиях по подготовке к школе;

  • ButtonNazad –кнопка «Назад».

Подразделу «Направления обучения» соответствует модуль Naprav.pas. На форме FormNaprav предполагается разместить следующие компоненты:

  • RichEdit1 – для вывода на экран информации о программах обучения в начальной школе;

  • Button1-5 – кнопки вывода информации о разных программах обучения в начальной школе, а также кнопка «Назад».

Раздел «Обратная связь» содержит подразделы «Письмо директору» и «Книга жалоб и пожеланий».

Подразделу «Письмо директору» соответствует модуль PismoDir.pas. На форме FormDir предполагается разместить следующие компоненты:

  • RichEdit1 – для отображения введенного текста;

  • Button1-3 – кнопки «Назад», «Сохранить» и «Пробел»;

  • SpeedButton1-35 – для создания клавиатуры.

Подразделу «Книга жалоб и пожеланий» соответствует модуль Kniga.pas. На форме FormKniga предполагается разместить следующие компоненты:

  • RichEdit1 – для отображения введенного текста;

  • Button1-3 – кнопки «Назад», «Добавить» и «Пробел»;

  • Label1 – для создания подписи компонента RichEdit1;

  • SpeedButton1-35 – для создания клавиатуры.

Раздел «Выход на сайт» открывает сайт школы.

2.3. Реализация программного обеспечения для информационного киоска на языке программирования Delphi

На основе логической и физической моделей было разработано программное обеспечение для информационного киоска на языке программирования Delphi. Полный код представлен в приложении 1.

Необходимым условием данного программного обеспечения является то, чтобы оно разворачивалось на весь экран, и пользователь в процессе работы с данной программой не видел операционной системы.

Чтобы формы разворачивались во весь экран и не имели строки заголовка и кнопок закрытия, в коде к каждой форме прописано несколько команд. Например, дляглавное формы прописано:

FormGlavMenu.WindowState:=wsMaximized;

FormGlavMenu.BorderStyle:=bsNone;

FormGlavMenu.Width:=Screen.Width;

FormGlavMenu.Height:=Screen.Height;

Данныйкодрастягиваетразмерыформыдоразмеровэкрана.

Для того чтобы и остальные компоненты на форме размещались согласно ее размеру, координаты их размещения, а также длины и высота определены также исходя из размеров формы. Например, компонент RichEdit1 на главной форме (на котором выводится несколько последних новостей) задан следующим образом:

Novosti.Top:=BtnNovosti.Top;

Novosti.Left:=Image1.Width+20;

Novosti.Width:=FormGlavMenu.Width-Image1.Width-Image3.Width-BtnNovosti.Width-ButtonObyavl.Width-100;

Novosti.Height:=FormGlavMenu.Height-Image3.Height-100;

Переход к операционной системе может быть осуществлен только программистом. Для этого была организована специальная последовательность нажатий на компоненты Image, находящиеся на главной форме и невидимые пользователю. Далее необходимо ввести пароль администратора для закрытия программы или доступа к операционной системе.

На Рис. компоненты Image показаны пунктирными квадратами.

Для реализации отслеживания именно последовательного нажатия по компонентам были объявлены переменные типа boolean: x1,x2, x3. При создании формы им присваиваются следующие значения: x1:=false; x2:=false; x3:=false;

Рис. . Главная форма ПО для информационного киоска

При нажатии на первый компонент значение переменной x1 меняется на true. При нажатии на второй компонент идет проверка условия:

begin

if (x1=true) then begin

x2:=true;

x3:=false;

end

else

begin

x1:=false;

x2:=false;

x3:=false;

end;

Если значение x1 уже true (т.е. если был нажат компонент Image1), значение x2 также меняется на true. Иначе значение всех переменных возвращается к false.

При нажатии по третьему компоненту вновь проверяется условие, аналогичное предыдущему условию, но проверяется нажатие компонентов Image1 и Image2:

begin

if (x1=true) and (x2=true) then begin

FormParol.Show;

end

else

begin

x1:=false;

x2:=false;

x3:=false;

end;

Если соблюдена верная последовательность нажатий данных компонентов, то открывается форма ввода пароля (Рис. ).

Рис. . Форма ввода пароля администратора

При верном пароле открывается форма администратора, которая позволяет закрыть программу или открыть главное меню снова.

Для организации реакции нажатия на кнопки использовался метод OnClick. Так, для появления подразделов использовался следующий принцип, который мы рассмотрим на примере раздела «Будущие первоклассники». При нажатии на кнопку «Будущие первоклассники» выполняется следующая процедура:

procedure TFormGlavMenu.BtnPervoklClick(Sender: TObject);

begin

ButtonObyavl.Visible:=False;

ButtonOprosy.Visible:=False;

ButtonLichKab.Visible:=False;

ButtonRasp.Visible:=False;

ButtonZhizn.Visible:=False;

ButtonEge.Visible:=False;

ButtonKom.Visible:=False;

ButtonSobraniya.Visible:=False;

ButtonKabRod.Visible:=False;

ButtonDopObr.Visible:=False;

ButtonOtkrDver.Visible:=True;

ButtonPodgotovka.Visible:=True;

ButtonNapr.Visible:=True;

ButtonDir.Visible:=False;

ButtonKniga.Visible:=False;

end;

Данная процедура меняет значение свойства Visible на True тех кнопок, которые соответствуют подразделам данного раздела, и на False – всех остальных кнопок. Это необходимо для того, что при нажатии на другой раздел подразделы первого раздела скрывались.

При нажатии же на кнопки подразделов либо открывается другая форма, либо появляется сообщение в отдельном окне, либо открывается сайт школы.

Рассмотрим подробнее каждое из этих действий.

Для выхода на сайт школы для кнопки раздела «Выход на сайт» выполняется следующая процедура:

procedure TFormGlavMenu.BtnSaitClick(Sender: TObject);

begin

ButtonObyavl.Visible:=False;

ButtonOprosy.Visible:=False;

ButtonLichKab.Visible:=False;

ButtonRasp.Visible:=False;

ButtonZhizn.Visible:=False;

ButtonEge.Visible:=False;

ButtonKom.Visible:=False;

ButtonSobraniya.Visible:=False;

ButtonKabRod.Visible:=False;

ButtonDopObr.Visible:=False;

ButtonOtkrDver.Visible:=False;

ButtonPodgotovka.Visible:=False;

ButtonNapr.Visible:=False;

ButtonDir.Visible:=False;

ButtonKniga.Visible:=False;

ShellExecute(Handle,'open','http://www.psoh1.ru/',nil,nil,0);

end;

Она делает невидимыми кнопки других разделов и открывает сайт http://www.psoh1.ru/.

Сообщение о проведении дня открытых дверей организовано с помощью следующей процедуры:

procedure TFormGlavMenu.ButtonOtkrDverClick(Sender: TObject);

begin

Showmessage('День открытых дверей состоится 31.08.2013 в 13:00.');

end;

Остальные подразделы открывают другую форму с помощью команды: .Show;

При этом модули, которым соответствуют формы, должны быть объявлены в разделе Uses. Так, например, для главной формы он выглядит так:

uses Parol, Unit4, PismoDir, Kniga, Podgotovka, Podg, Naprav, Rasp, Zhizn, Ege, Kom, DopObr, LichKab;

Для вывода информации из документа формата .rtf используется следующая команда (на примере вывода объявлений):

RichEdit1.Lines.LoadFromFile('Updates.rtf');

Для организации клавиатурного ввода (актуальна именно экранная клавиатура, т.к. предполагается использовать ПОна сенсорных терминалах), используются команды:

RichEdit1.Text:=RichEdit1.Text+'й';

Для записи введенного текста в файл используются команды:

RichEdit1.Lines.SaveToFile('ZP.rtf');

ShowMessage(' Добавлено ');

Для вывода информации, сопровождаемой иллюстрациями, или информации, сохраненной в формате документа MSExcel используется компонент OleContainer.

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

Выводы по второй главе

На основе теоретических положений, рассмотренных в первой главе, нами была построена логическая, а затем и физическая модели программного обеспечения информационного киоска.

В данных моделях представлена реализация следующих компонент.

  • Новости (объявления и опросы).

  • Ученики (личный кабинет, расписания звонков и уроков, отчеты о школьных мероприятиях, сведения по ЕГЭ).

  • Родители (состав родительского комитета, расписание родительских собраний, личный кабинет, информация о дополнительном образовании).

  • Будущие первоклассники (информация о проведении дня открытых дверей, подготовки к школе, направлениях обучения).

  • Обратная связь (возможность написать письмо директору, доступ к книге жалоб и пожеланий).

  • Выход на сайт школы.

Данные модели были реализованы с помощью языка программирования Delphi. При программировании были учтены необходимость предоставления информации учителями школы и другим персоналом, не владеющими навыками программирования.

Заключение

В результате написания выпускной квалификационной работы были сделаны следующие выводы.

Информационный киоск, или терминал, – это устройство, которое оснащено дисплеем с сенсорным экраном и специализированным компьютером, дающее возможность ознакомиться с продукцией или с услугами учреждения, где он установлен. Кроме того, информационные киоски могут оснащаться дополнительным оборудованием, например, приемниками купюр, средствами для аудио и видео связи, оборудованием для обработки пластиковых карт.

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

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

Физическая модель позволила реализовать программное обеспечение для информационного киоска школы на языке программирования Delphi. Программа содержит следующие разделы: «Новости», «Ученики», «Родители», «Будущие первоклассники», «Обратная связь», «Выход на сайт школы».

Данное программное обеспечение будет усовершенствовано в дальнейшем с учетом конкретных пожеланий отдельной школы. Поэтому тема имеет дальнейшие перспективы изучения.

Библиография
  1. Архангельский А.Я. Программирование в Delphi 7[Текст] / А.Я. Архангельский. – М.: ООО «Бином-Пресс», 2003. – 1152 с.

  2. Бирюкова Н.С. Роль информатизации в системе современного образования [Текст] / Н.С. Бирюкова // Актуальные проблемы гуманитарных и естественных наук. – 2010. – № 10. – С. 136-139.

  3. Вендров А.М. Проектирование программного обеспечения экономических информационных систем: Учебник [Текст] / А.М. Вендров. – 2-е изд., перераб. и доп. – М.: Финансы и статистика, 2006. – 544 с.

  4. Гриншкун В.В., Заславская О.Ю.. История и перспективы развития программ информатизации образования [Текст] / В.В. Гриншкун, О.Ю. Заславская // Вестник Московского городского педагогического университета. – 2011. – № 21. – С. 5-13.

  5. Довгаль В.М., Волобуев В.В. Стационарный терминал как средство визуализации документальной информации в образовательном учреждении [Текст] / В.М. Довгаль, В.В. Волобуев // Известия Юго-Западного государственного университета. – 2009. – № 3. – С. 54-58.

  6. Ечмаева Г.А. Информационные системы. Лабораторный практикум: Учеб.-метод. пособие для студ. пед. вузов [Текст] / Г.А. Ечмаева. – 2-е изд. – Тобольск: ТГСПА им. Д.И. Менделеева, 2011. – 209 с.

  7. Избачков Ю.С., Петров В.Н. Информационные системы: Учебник для вузов [Текст] / Ю.С. Избачков, В.Н. Петров. – 2-е изд. – СПб.: Питер, 2006. – 656 с.

  8. Коваленко В.А. Сенсорные киоски для библиотечных выставок [Текст] / В.А. Коваленко // Культура и цивилизация. – 2012. – № 2-3. – С. 140-148.

  9. Кожуханцева И.В., Стучилин В.В. Разработка парсера расписания железнодорожных поездов [Текст] / И.В. Кожуханцева, В.В. Стучилин // Научный вестник Московского государственного горного университета. – 2011. – № 7. – С. 31-42.

  10. Колесникова О.В. Электронный учебник как средство информатизации общества [Текст] / О.В. Колесникова // Вестник Псковского государственного педагогического университета. – 2010. – № 10. – С. 62-67.

  11. Купер А., Рейман Р., Кронин Д. Алан Купер об интерфейсе. Основы проектирования взаимодействия [Текст] / А. Купер, Р. Рейман, Д. Кронин. – Пер. с англ. – СПб.: Символ-Плюс, 2009. – 688 с.

  12. Нормативная база Школы информатизации. Метод.пособие [Электронный документ] // http://pedsovet.org/component/ option,com_mtree/task,viewlink/link_id,3232/Itemid,118/. – 29.11.2012.

  13. Острейковский В.А. Информатика. Теория и практика: Учеб.пособие [Текст] / В.А. Острейковский, И.В. Полякова. – М.: Издательство Оникс, 2008. – 608 с.

  14. Ронжин А.Л. Методы и программные средства многоканальной дистанционной обработки речи и их применение в интерактивных многомодальных приложениях: Автореф. дис. … к.тех.н. [Текст] / А.Л. Ронжин. – Санкт-Петербург, 2010. – 34 с.

  15. Сенсорные киоски в школе [Электронный ресурс] // http://unitsys.ru/site/solutions/shkoli. – 29.11.2012.

  16. Система управления обучением «LMS Школа» [Электронный ресурс] // http://www.lms-school.ru/Files/booklet_LMS-School.pdf - 01.12.2012.

  17. Справочно-информационная система для образовательных учреждений «Электронный гид учащегося» [Электронный ресурс] // http://www.touch.ru/article.aspx?RubrID=106&ArtID=732 – 01.12.2012.

  18. Трайнев В.А. Новые информационные коммуникационные технологии в образовании [Текст] / В.А. Трайнев, В.Ю. Теплышев, И.В. Трайнев. – М.: Издательско-торговая корпорация «Дашков и К°», 2009. – 320 с.

  19. Фаронов В.В. Delphi. Программирование на языке высокого уровня: Учебник для вузов [Текст] / В.В. Фаронов. – СПб.: Питер, 2007. – 640 с.

Приложение 1

Код программного обеспечения для информационного киоска школы

Модуль главного меню

unit GlavMenu;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ExtCtrls, ComCtrls, Buttons, ShellAPI;

type

TFormGlavMenu = class(TForm)

Button1: TButton;

Image1: TImage;

Image2: TImage;

Image3: TImage;

Novosti: TRichEdit;

BtnSait: TSpeedButton;

BtnObrSv: TSpeedButton;

BtnPervokl: TSpeedButton;

BtnRoditeli: TSpeedButton;

BtnUcheniki: TSpeedButton;

BtnNovosti: TSpeedButton;

ButtonOprosy: TButton;

ButtonLichKab: TButton;

ButtonRasp: TButton;

ButtonZhizn: TButton;

ButtonEge: TButton;

ButtonKom: TButton;

ButtonSobraniya: TButton;

ButtonKabRod: TButton;

ButtonDopObr: TButton;

ButtonOtkrDver: TButton;

ButtonPodgotovka: TButton;

ButtonNapr: TButton;

ButtonDir: TButton;

ButtonKniga: TButton;

ButtonObyavl: TButton;

procedure FormCreate(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Image2Click(Sender: TObject);

procedure Image3Click(Sender: TObject);

procedure Image1Click(Sender: TObject);

procedure BtnNovostiClick(Sender: TObject);

procedure BtnUchenikiClick(Sender: TObject);

procedure BtnRoditeliClick(Sender: TObject);

procedure BtnPervoklClick(Sender: TObject);

procedure BtnObrSvClick(Sender: TObject);

procedure BtnSaitClick(Sender: TObject);

procedure ButtonObyavlClick(Sender: TObject);

procedure ButtonDirClick(Sender: TObject);

procedure ButtonKnigaClick(Sender: TObject);

procedure ButtonOtkrDverClick(Sender: TObject);

procedure ButtonPodgotovkaClick(Sender: TObject);

procedure ButtonNaprClick(Sender: TObject);

procedure ButtonRaspClick(Sender: TObject);

procedure ButtonZhiznClick(Sender: TObject);

procedure ButtonEgeClick(Sender: TObject);

procedure ButtonKomClick(Sender: TObject);

procedure ButtonSobraniyaClick(Sender: TObject);

procedure ButtonDopObrClick(Sender: TObject);

procedure ButtonLichKabClick(Sender: TObject);

procedure ButtonKabRodClick(Sender: TObject);

procedure ButtonOprosyClick(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

FormGlavMenu: TFormGlavMenu;

x1,x2,x3:boolean;

implementation

uses Parol, Unit4, PismoDir, Kniga, Podgotovka, Podg, Naprav, Rasp, Zhizn, Ege,

Kom, DopObr, LichKab;

{$R *.dfm}

procedure TFormGlavMenu.BtnNovostiClick(Sender: TObject);

begin

ButtonObyavl.Visible:=True;

ButtonOprosy.Visible:=True;

ButtonLichKab.Visible:=False;

ButtonRasp.Visible:=False;

ButtonZhizn.Visible:=False;

ButtonEge.Visible:=False;

ButtonKom.Visible:=False;

ButtonSobraniya.Visible:=False;

ButtonKabRod.Visible:=False;

ButtonDopObr.Visible:=False;

ButtonOtkrDver.Visible:=False;

ButtonPodgotovka.Visible:=False;

ButtonNapr.Visible:=False;

ButtonDir.Visible:=False;

ButtonKniga.Visible:=False;

end;

procedure TFormGlavMenu.BtnObrSvClick(Sender: TObject);

begin

ButtonObyavl.Visible:=False;

ButtonOprosy.Visible:=False;

ButtonLichKab.Visible:=False;

ButtonRasp.Visible:=False;

ButtonZhizn.Visible:=False;

ButtonEge.Visible:=False;

ButtonKom.Visible:=False;

ButtonSobraniya.Visible:=False;

ButtonKabRod.Visible:=False;

ButtonDopObr.Visible:=False;

ButtonOtkrDver.Visible:=False;

ButtonPodgotovka.Visible:=False;

ButtonNapr.Visible:=False;

ButtonDir.Visible:=True;

ButtonKniga.Visible:=True;

end;

procedure TFormGlavMenu.BtnPervoklClick(Sender: TObject);

begin

ButtonObyavl.Visible:=False;

ButtonOprosy.Visible:=False;

ButtonLichKab.Visible:=False;

ButtonRasp.Visible:=False;

ButtonZhizn.Visible:=False;

ButtonEge.Visible:=False;

ButtonKom.Visible:=False;

ButtonSobraniya.Visible:=False;

ButtonKabRod.Visible:=False;

ButtonDopObr.Visible:=False;

ButtonOtkrDver.Visible:=True;

ButtonPodgotovka.Visible:=True;

ButtonNapr.Visible:=True;

ButtonDir.Visible:=False;

ButtonKniga.Visible:=False;

end;

procedure TFormGlavMenu.BtnRoditeliClick(Sender: TObject);

begin

ButtonObyavl.Visible:=False;

ButtonOprosy.Visible:=False;

ButtonLichKab.Visible:=False;

ButtonRasp.Visible:=False;

ButtonZhizn.Visible:=False;

ButtonEge.Visible:=False;

ButtonKom.Visible:=True;

ButtonSobraniya.Visible:=True;

ButtonKabRod.Visible:=True;

ButtonDopObr.Visible:=True;

ButtonOtkrDver.Visible:=False;

ButtonPodgotovka.Visible:=False;

ButtonNapr.Visible:=False;

ButtonDir.Visible:=False;

ButtonKniga.Visible:=False;

end;

procedure TFormGlavMenu.BtnSaitClick(Sender: TObject);

begin

ButtonObyavl.Visible:=False;

ButtonOprosy.Visible:=False;

ButtonLichKab.Visible:=False;

ButtonRasp.Visible:=False;

ButtonZhizn.Visible:=False;

ButtonEge.Visible:=False;

ButtonKom.Visible:=False;

ButtonSobraniya.Visible:=False;

ButtonKabRod.Visible:=False;

ButtonDopObr.Visible:=False;

ButtonOtkrDver.Visible:=False;

ButtonPodgotovka.Visible:=False;

ButtonNapr.Visible:=False;

ButtonDir.Visible:=False;

ButtonKniga.Visible:=False;

ShellExecute(Handle,'open','http://www.psoh1.ru/',nil,nil,0);

end;

procedure TFormGlavMenu.BtnUchenikiClick(Sender: TObject);

begin

ButtonObyavl.Visible:=False;

ButtonOprosy.Visible:=False;

ButtonLichKab.Visible:=True;

ButtonRasp.Visible:=True;

ButtonZhizn.Visible:=True;

ButtonEge.Visible:=True;

ButtonKom.Visible:=False;

ButtonSobraniya.Visible:=False;

ButtonKabRod.Visible:=False;

ButtonDopObr.Visible:=False;

ButtonOtkrDver.Visible:=False;

ButtonPodgotovka.Visible:=False;

ButtonNapr.Visible:=False;

ButtonDir.Visible:=False;

ButtonKniga.Visible:=False;

end;

procedure TFormGlavMenu.Button1Click(Sender: TObject);

begin

Close;

end;

procedure TFormGlavMenu.ButtonDirClick(Sender: TObject);

begin

FormDir.Show;

end;

procedure TFormGlavMenu.ButtonDopObrClick(Sender: TObject);

begin

FormDopObr.Show;

end;

procedure TFormGlavMenu.ButtonEgeClick(Sender: TObject);

begin

FormEge.Show;

end;

procedure TFormGlavMenu.ButtonKabRodClick(Sender: TObject);

begin

FormLichKab.Show;

end;

procedure TFormGlavMenu.ButtonKnigaClick(Sender: TObject);

begin

FormKniga.Show;

end;

procedure TFormGlavMenu.ButtonKomClick(Sender: TObject);

begin

FormKom.Show;

end;

procedure TFormGlavMenu.ButtonLichKabClick(Sender: TObject);

begin

FormLichKab.Show;

end;

procedure TFormGlavMenu.ButtonNaprClick(Sender: TObject);

begin

FormNaprav.Show;

end;

procedure TFormGlavMenu.ButtonObyavlClick(Sender: TObject);

begin

FormObyavl.Show;

end;

procedure TFormGlavMenu.ButtonOprosyClick(Sender: TObject);

begin

Showmessage('Вразработке');

end;

procedure TFormGlavMenu.ButtonOtkrDverClick(Sender: TObject);

begin

Showmessage('День открытых дверей состоится 31.08.2013 в 13:00.');

end;

procedure TFormGlavMenu.ButtonPodgotovkaClick(Sender: TObject);

begin

Form1.Show;

end;

procedure TFormGlavMenu.ButtonRaspClick(Sender: TObject);

begin

FormRasp.Show;

end;

procedure TFormGlavMenu.ButtonSobraniyaClick(Sender: TObject);

begin

FormKom.Show;

end;

procedure TFormGlavMenu.ButtonZhiznClick(Sender: TObject);

begin

FormZhizn.Show;

end;

procedure TFormGlavMenu.FormCreate(Sender: TObject);

begin

FormGlavMenu.WindowState:=wsMaximized;

FormGlavMenu.BorderStyle:=bsNone;

FormGlavMenu.Width:=Screen.Width;

FormGlavMenu.Height:=Screen.Height;

Button1.Left:=FormGlavMenu.Width-Button1.Width;

Image1.Left:=0;

Image2.Left:=0;

Image1.Top:=0;

Image2.Top:=FormGlavMenu.Height-Image2.Height;

Image3.Left:=FormGlavMenu.Width-Image3.Width;

Image3.Top:=FormGlavMenu.Height-Image3.Height;

Novosti.Lines.LoadFromFile('news.rtf');

BtnNovosti.Width:=200;

BtnUcheniki.Width:=200;

BtnRoditeli.Width:=200;

BtnPervokl.Width:=200;

BtnObrSv.Width:=200;

BtnSait.Width:=200;

ButtonObyavl.Width:=170;

ButtonOprosy.Width:=170;

ButtonLichKab.Width:=170;

ButtonRasp.Width:=170;

ButtonZhizn.Width:=170;

ButtonEge.Width:=170;

ButtonKom.Width:=170;

ButtonSobraniya.Width:=170;

ButtonKabRod.Width:=170;

ButtonDopObr.Width:=170;

ButtonOtkrDver.Width:=170;

ButtonPodgotovka.Width:=170;

ButtonNapr.Width:=170;

ButtonDir.Width:=170;

ButtonKniga.Width:=170;

BtnNovosti.Left:=FormGlavMenu.Width-Image3.Width-ButtonObyavl.Width-250;

BtnUcheniki.Left:=BtnNovosti.Left;

BtnRoditeli.Left:=BtnNovosti.Left;

BtnPervokl.Left:=BtnNovosti.Left;

BtnObrSv.Left:=BtnNovosti.Left;

BtnSait.Left:=BtnNovosti.Left;

BtnNovosti.Top:=50;

BtnUcheniki.Top:=BtnNovosti.Top+BtnNovosti.Height+20;

BtnRoditeli.Top:=BtnUcheniki.Top+BtnUcheniki.Height+20;

BtnPervokl.Top:=BtnRoditeli.Top+BtnRoditeli.Height+20;

BtnObrSv.Top:=BtnPervokl.Top+BtnPervokl.Height+20;

BtnSait.Top:=BtnObrSv.Top+BtnObrSv.Height+20;

ButtonObyavl.Left:=BtnNovosti.Left+BtnNovosti.Width+10;

ButtonOprosy.Left:=BtnNovosti.Left+BtnNovosti.Width+10;

ButtonLichKab.Left:=ButtonOprosy.Left;

ButtonRasp.Left:=ButtonOprosy.Left;

ButtonZhizn.Left:=ButtonOprosy.Left;

ButtonEge.Left:=ButtonOprosy.Left;

ButtonKom.Left:=ButtonOprosy.Left;

ButtonSobraniya.Left:=ButtonOprosy.Left;

ButtonKabRod.Left:=ButtonOprosy.Left;

ButtonDopObr.Left:=ButtonOprosy.Left;

ButtonOtkrDver.Left:=ButtonOprosy.Left;

ButtonPodgotovka.Left:=ButtonOprosy.Left;

ButtonNapr.Left:=ButtonOprosy.Left;

ButtonDir.Left:=ButtonOprosy.Left;

ButtonKniga.Left:=ButtonOprosy.Left;

ButtonObyavl.Top:=BtnNovosti.Top;

ButtonOprosy.Top:=ButtonObyavl.Top+ButtonObyavl.Height;

ButtonLichKab.Top:=BtnUcheniki.Top;

ButtonRasp.Top:=ButtonLichKab.Top+ButtonLichKab.Height;

ButtonZhizn.Top:=ButtonRasp.Top+ButtonRasp.Height;

ButtonEge.Top:=ButtonZhizn.Top+ButtonZhizn.Height;

ButtonKom.Top:=BtnRoditeli.Top;

ButtonSobraniya.Top:=ButtonKom.Top+ButtonKom.Height;

ButtonKabRod.Top:=ButtonSobraniya.Top+ButtonSobraniya.Height;

ButtonDopObr.Top:=ButtonKabRod.Top+ButtonKabRod.Height;

ButtonOtkrDver.Top:=BtnPervokl.Top;

ButtonPodgotovka.Top:=ButtonOtkrDver.Top+ButtonOtkrDver.Height;

ButtonNapr.Top:=ButtonPodgotovka.Top+ButtonPodgotovka.Height;

ButtonDir.Top:=BtnObrSv.Top;

ButtonKniga.Top:=ButtonDir.Top+ButtonDir.Height;

Novosti.Top:=BtnNovosti.Top;

Novosti.Left:=Image1.Width+20;

Novosti.Width:=FormGlavMenu.Width-Image1.Width-Image3.Width-BtnNovosti.Width-ButtonObyavl.Width-100;

Novosti.Height:=FormGlavMenu.Height-Image3.Height-100;

ButtonObyavl.Visible:=False;

ButtonOprosy.Visible:=False;

ButtonLichKab.Visible:=False;

ButtonRasp.Visible:=False;

ButtonZhizn.Visible:=False;

ButtonEge.Visible:=False;

ButtonKom.Visible:=False;

ButtonSobraniya.Visible:=False;

ButtonKabRod.Visible:=False;

ButtonDopObr.Visible:=False;

ButtonOtkrDver.Visible:=False;

ButtonPodgotovka.Visible:=False;

ButtonNapr.Visible:=False;

ButtonDir.Visible:=False;

ButtonKniga.Visible:=False;

x1:=false;

x2:=false;

x3:=false;

end;

procedure TFormGlavMenu.Image1Click(Sender: TObject);

begin

x1:=true;

x2:=false;

x3:=false;

end;

procedure TFormGlavMenu.Image2Click(Sender: TObject);

begin

if (x1=true) then begin

x2:=true;

x3:=false;

end

else

begin

x1:=false;

x2:=false;

x3:=false;

end;

end;

procedure TFormGlavMenu.Image3Click(Sender: TObject);

begin

if (x1=true) and (x2=true) then begin

FormParol.Show;

end

else

begin

x1:=false;

x2:=false;

x3:=false;

end;

end;

end.

Модульвводапароля

unit Parol;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Buttons;

type

TFormParol = class(TForm)

SpeedButton1: TSpeedButton;

SpeedButton2: TSpeedButton;

SpeedButton3: TSpeedButton;

SpeedButton4: TSpeedButton;

SpeedButton5: TSpeedButton;

SpeedButton6: TSpeedButton;

SpeedButton7: TSpeedButton;

SpeedButton8: TSpeedButton;

SpeedButton9: TSpeedButton;

SpeedButton10: TSpeedButton;

SpeedButton11: TSpeedButton;

Label1: TLabel;

VvodPar: TEdit;

BitBtn1: TBitBtn;

procedure SpeedButton1Click(Sender: TObject);

procedure SpeedButton2Click(Sender: TObject);

procedure SpeedButton3Click(Sender: TObject);

procedure SpeedButton4Click(Sender: TObject);

procedure SpeedButton5Click(Sender: TObject);

procedure SpeedButton6Click(Sender: TObject);

procedure SpeedButton7Click(Sender: TObject);

procedure SpeedButton8Click(Sender: TObject);

procedure SpeedButton9Click(Sender: TObject);

procedure SpeedButton10Click(Sender: TObject);

procedure SpeedButton11Click(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

FormParol: TFormParol;

implementation

uses Admin, GlavMenu;

{$R *.dfm}

procedure TFormParol.BitBtn1Click(Sender: TObject);

begin

if (VvodPar.Text='1408') then

begin

Showmessage('Парольверный');

FormAdmin.Show;

FormParol.Hide;

FormGlavMenu.Hide;

end;

end;

procedure TFormParol.SpeedButton10Click(Sender: TObject);

begin

VvodPar.Text:=VvodPar.Text+'9';

end;

procedure TFormParol.SpeedButton11Click(Sender: TObject);

begin

VvodPar.Text:='';

end;

procedure TFormParol.SpeedButton1Click(Sender: TObject);

begin

VvodPar.Text:=VvodPar.Text+'0';

end;

procedure TFormParol.SpeedButton2Click(Sender: TObject);

begin

VvodPar.Text:=VvodPar.Text+'1';

end;

procedure TFormParol.SpeedButton3Click(Sender: TObject);

begin

VvodPar.Text:=VvodPar.Text+'2';

end;

procedure TFormParol.SpeedButton4Click(Sender: TObject);

begin

VvodPar.Text:=VvodPar.Text+'3';

end;

procedure TFormParol.SpeedButton5Click(Sender: TObject);

begin

VvodPar.Text:=VvodPar.Text+'4';

end;

procedure TFormParol.SpeedButton6Click(Sender: TObject);

begin

VvodPar.Text:=VvodPar.Text+'5';

end;

procedure TFormParol.SpeedButton7Click(Sender: TObject);

begin

VvodPar.Text:=VvodPar.Text+'6';

end;

procedure TFormParol.SpeedButton8Click(Sender: TObject);

begin

VvodPar.Text:=VvodPar.Text+'7';

end;

procedure TFormParol.SpeedButton9Click(Sender: TObject);

begin

VvodPar.Text:=VvodPar.Text+'8';

end;

end.

Модуль формы администратора

unit Admin;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Buttons;

type

TFormAdmin = class(TForm)

SpeedButton2: TSpeedButton;

SpeedButton3: TSpeedButton;

procedure SpeedButton3Click(Sender: TObject);

procedure SpeedButton2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

FormAdmin: TFormAdmin;

implementation

uses GlavMenu;

{$R *.dfm}

procedure TFormAdmin.SpeedButton2Click(Sender: TObject);

begin

FormAdmin.Close;

FormGlavMenu.Show;

end;

procedure TFormAdmin.SpeedButton3Click(Sender: TObject);

begin

Application.Terminate;

end;

end.

Модульподраздела «Объявления»

unit Unit4;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ComCtrls;

type

TFormObyavl = class(TForm)

RichEdit1: TRichEdit;

Button1: TButton;

procedure Button1Click(Sender: TObject);

procedure FormShow(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

FormObyavl: TFormObyavl;

implementation

uses GlavMenu;

{$R *.dfm}

procedure TFormObyavl.Button1Click(Sender: TObject);

begin

FormObyavl.close;

end;

procedure TFormObyavl.FormCreate(Sender: TObject);

begin

FormObyavl.WindowState:=wsMaximized;

FormObyavl.BorderStyle:=bsNone;

FormObyavl.Width:=Screen.Width;

FormObyavl.Height:=Screen.Height;

RichEdit1.Width:=FormObyavl.Width-50;

RichEdit1.Height:=FormObyavl.Height-Button1.Height-50;

RichEdit1.Left:=10;

RichEdit1.Top:=10;

Button1.Top:=RichEdit1.Height+10;

Button1.Left:=10;

end;

procedure TFormObyavl.FormShow(Sender: TObject);

begin

RichEdit1.Lines.LoadFromFile('Updates.rtf');

end;

end.

Модуль подраздела «Личный кабинет»

unit LichKab;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, OleCtnrs;

type

TFormLichKab = class(TForm)

Button1: TButton;

Label1: TLabel;

OleContainer1: TOleContainer;

procedure FormCreate(Sender: TObject);

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

FormLichKab: TFormLichKab;

implementation

{$R *.dfm}

procedure TFormLichKab.Button1Click(Sender: TObject);

begin

FormLichKab.Close;

end;

procedure TFormLichKab.FormCreate(Sender: TObject);

begin

FormLichKab.WindowState:=wsMaximized;

FormLichKab.BorderStyle:=bsNone;

FormLichKab.Width:=Screen.Width;

FormLichKab.Height:=Screen.Height;

Label1.Left:=0;

Label1.Top:=50;

Label1.Width:=FormLichKab.Width;

Label1.Caption:='ФИОучащегося';

Button1.Top:=FormLichKab.Height-60;

Button1.Left:=50;

Button1.Width:=170;

Button1.Height:=50;

OleContainer1.Left:=50;

OleContainer1.Top:=100;

OleContainer1.Width:=FormLichKab.Width-100;

OleContainer1.Height:=FormLichKab.Height div 2;

end;

end.

Модуль подраздела «Расписание звонков/уроков»

unit Rasp;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ExtCtrls, ComCtrls;

type

TFormRasp = class(TForm)

Panel1: TPanel;

RichEdit1: TRichEdit;

Splitter1: TSplitter;

RichEdit2: TRichEdit;

Label1: TLabel;

Label2: TLabel;

Button1: TButton;

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

procedure FormShow(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

FormRasp: TFormRasp;

implementation

uses GlavMenu;

{$R *.dfm}

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

begin

FormGlavMenu.show;

end;

procedure TFormRasp.FormCreate(Sender: TObject);

begin

FormRasp.WindowState:=wsMaximized;

FormRasp.BorderStyle:=bsNone;

FormRasp.Width:=Screen.Width;

FormRasp.Height:=Screen.Height;

RichEdit1.Width:=FormRasp.Width div 2;

RichEdit2.Width:=FormRasp.Width div 2;

RichEdit1.Height:=FormRasp.Height-50;

RichEdit2.Height:=FormRasp.Height-50;

Panel1.Width:=FormRasp.Width;

Label1.Left:=RichEdit1.Width div 3;

Label2.Left:=RichEdit1.Width+(RichEdit2.Width div 3);

end;

procedure TFormRasp.FormShow(Sender: TObject);

begin

RichEdit1.Lines.LoadFromFile('Rings.rtf');

RichEdit2.Lines.LoadFromFile('Lessons.rtf');

end;

procedure TFormRasp.Button1Click(Sender: TObject);

begin

FormGlavMenu.Show;

FormRasp.close;

end;

end.

Модуль подраздела «Жизнь школьника»

unit Zhizn;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, OleCtnrs;

type

TFormZhizn = class(TForm)

OleContainer1: TOleContainer;

Button1: TButton;

procedure Button1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

FormZhizn: TFormZhizn;

implementation

{$R *.dfm}

procedure TFormZhizn.Button1Click(Sender: TObject);

begin

FormZhizn.Close;

end;

procedure TFormZhizn.FormCreate(Sender: TObject);

begin

FormZhizn.WindowState:=wsMaximized;

FormZhizn.BorderStyle:=bsNone;

FormZhizn.Width:=Screen.Width;

FormZhizn.Height:=Screen.Height;

Button1.Top:=FormZhizn.Height-100;

Button1.Width:=170;

Button1.Height:=50;

Button1.Left:=50;

OleContainer1.Left:=50;

OleContainer1.Top:=50;

OleContainer1.Width:=FormZhizn.Width;

OleContainer1.Height:=FormZhizn.Height-120-Button1.Height;

end;

end.

Модульподраздела «ЕГЭ»

unit Ege;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, OleCtnrs;

type

TFormEge = class(TForm)

OleContainer1: TOleContainer;

Button1: TButton;

procedure Button1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

FormEge: TFormEge;

implementation

{$R *.dfm}

procedure TFormEge.Button1Click(Sender: TObject);

begin

FormEge.Close;

end;

procedure TFormEge.FormCreate(Sender: TObject);

begin

FormEge.WindowState:=wsMaximized;

FormEge.BorderStyle:=bsNone;

FormEge.Width:=Screen.Width;

FormEge.Height:=Screen.Height;

Button1.Top:=FormEge.Height-100;

Button1.Width:=170;

Button1.Height:=50;

Button1.Left:=50;

OleContainer1.Left:=50;

OleContainer1.Top:=50;

OleContainer1.Width:=FormEge.Width;

OleContainer1.Height:=FormEge.Height-120-Button1.Height;

end;

end.

Модуль подраздела «Родительский комитет, расписание собраний»

unit Kom;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ExtCtrls, ComCtrls;

type

TFormKom = class(TForm)

Panel1: TPanel;

RichEdit1: TRichEdit;

Splitter1: TSplitter;

RichEdit2: TRichEdit;

Label1: TLabel;

Label2: TLabel;

Button1: TButton;

procedure FormShow(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

FormKom: TFormKom;

implementation

uses GlavMenu, Podg;

{$R *.dfm}

procedure TFormKom.FormCreate(Sender: TObject);

begin

FormKom.WindowState:=wsMaximized;

FormKom.BorderStyle:=bsNone;

FormKom.Width:=Screen.Width;

FormKom.Height:=Screen.Height;

RichEdit1.Width:=FormKom.Width div 2;

RichEdit2.Width:=FormKom.Width div 2;

RichEdit1.Height:=FormKom.Height-50;

RichEdit2.Height:=FormKom.Height-50;

Panel1.Width:=FormKom.Width;

Label1.Left:=RichEdit1.Width div 3;

Label2.Left:=RichEdit1.Width+(RichEdit2.Width div 3);

end;

procedure TFormKom.FormShow(Sender: TObject);

begin

RichEdit1.Lines.LoadFromFile('Parents_com.rtf');

RichEdit2.Lines.LoadFromFile('Parents_communities.rtf');

end;

procedure TFormKom.Button1Click(Sender: TObject);

begin

FormKom.close;

end;

end.

Модуль подраздела «Дополнительное образование»

unit DopObr;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ComCtrls;

type

TFormDopObr = class(TForm)

Button1: TButton;

RichEdit1: TRichEdit;

procedure Button1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure FormShow(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

FormDopObr: TFormDopObr;

implementation

{$R *.dfm}

procedure TFormDopObr.Button1Click(Sender: TObject);

begin

FormDopObr.Close;

end;

procedure TFormDopObr.FormCreate(Sender: TObject);

begin

FormDopObr.WindowState:=wsMaximized;

FormDopObr.BorderStyle:=bsNone;

FormDopObr.Width:=Screen.Width;

FormDopObr.Height:=Screen.Height;

Button1.Top:=FormDopObr.Height-100;

Button1.Left:=100;

Button1.Width:=FormDopObr.Width div 6;

Button1.Height:=50;

RichEdit1.Left:=50;

RichEdit1.Top:=50;

RichEdit1.Width:=FormDopObr.Width-200;

RichEdit1.Height:=FormDopObr.Height-Button1.Height-200;

end;

procedure TFormDopObr.FormShow(Sender: TObject);

begin

RichEdit1.Lines.LoadFromFile('DopObr.rtf');

end;

end.

Модуль подраздела «Подготовка к школе»

unit Podg;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ComCtrls;

type

TForm1 = class(TForm)

ButtonNazad: TButton;

RichEdit1: TRichEdit;

procedure FormCreate(Sender: TObject);

procedure ButtonNazadClick(Sender: TObject);

procedure FormShow(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.ButtonNazadClick(Sender: TObject);

begin

Form1.Close;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

Form1.WindowState:=wsMaximized;

Form1.BorderStyle:=bsNone;

Form1.Width:=Screen.Width;

Form1.Height:=Screen.Height;

ButtonNazad.Top:=Form1.Height-100;

ButtonNazad.Left:=100;

ButtonNazad.Width:=Form1.Width div 6;

ButtonNazad.Height:=50;

RichEdit1.Left:=50;

RichEdit1.Top:=50;

RichEdit1.Width:=Form1.Width-200;

RichEdit1.Height:=Form1.Height-ButtonNazad.Height-200;

end;

procedure TForm1.FormShow(Sender: TObject);

begin

RichEdit1.Lines.LoadFromFile('Podgotovka.rtf');

end;

end.

Модуль подраздела «Направления обучения»

unit Naprav;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ComCtrls;

type

TFormNaprav = class(TForm)

RichEdit1: TRichEdit;

Button1: TButton;

Button2: TButton;

Button3: TButton;

Button4: TButton;

Button5: TButton;

procedure FormCreate(Sender: TObject);

procedure Button5Click(Sender: TObject);

procedure FormShow(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

FormNaprav: TFormNaprav;

implementation

{$R *.dfm}

procedure TFormNaprav.Button1Click(Sender: TObject);

begin

RichEdit1.Lines.LoadFromFile('ShkolaRossii.rtf');

end;

procedure TFormNaprav.Button2Click(Sender: TObject);

begin

RichEdit1.Lines.LoadFromFile('Perspektiva.rtf');

end;

procedure TFormNaprav.Button3Click(Sender: TObject);

begin

RichEdit1.Lines.LoadFromFile('Shkola2100.rtf');

end;

procedure TFormNaprav.Button4Click(Sender: TObject);

begin

RichEdit1.Lines.LoadFromFile('NachShkola.rtf');

end;

procedure TFormNaprav.Button5Click(Sender: TObject);

begin

FormNaprav.Close;

end;

procedure TFormNaprav.FormCreate(Sender: TObject);

begin

FormNaprav.WindowState:=wsMaximized;

FormNaprav.BorderStyle:=bsNone;

FormNaprav.Width:=Screen.Width;

FormNaprav.Height:=Screen.Height;

RichEdit1.Width:=FormNaprav.Width-50;

RichEdit1.Top:=150;

RichEdit1.Left:=50;

RichEdit1.Height:=FormNaprav.Height-400;

Button5.Top:=RichEdit1.Top+RichEdit1.Height+50;

Button1.Top:=50;

Button2.Top:=50;

Button3.Top:=50;

Button4.Top:=50;

Button1.Width:=170;

Button2.Width:=170;

Button3.Width:=170;

Button4.Width:=170;

Button5.Width:=170;

Button1.Height:=50;

Button2.Height:=50;

Button3.Height:=50;

Button4.Height:=50;

Button5.Height:=50;

Button1.Left:=50;

Button2.Left:=Button1.Left+Button1.Width+15;

Button3.Left:=Button2.Left+Button1.Width+15;

Button4.Left:=Button3.Left+Button1.Width+15;

Button5.Left:=50;

end;

procedure TFormNaprav.FormShow(Sender: TObject);

begin

RichEdit1.Text:='';

end;

end.

Модульподраздела «Письмодиректору»

unit PismoDir;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ComCtrls, Buttons;

type

TFormDir = class(TForm)

SpeedButton1: TSpeedButton;

SpeedButton2: TSpeedButton;

SpeedButton3: TSpeedButton;

SpeedButton4: TSpeedButton;

SpeedButton5: TSpeedButton;

SpeedButton6: TSpeedButton;

SpeedButton7: TSpeedButton;

SpeedButton8: TSpeedButton;

SpeedButton9: TSpeedButton;

SpeedButton10: TSpeedButton;

SpeedButton11: TSpeedButton;

SpeedButton12: TSpeedButton;

SpeedButton13: TSpeedButton;

SpeedButton14: TSpeedButton;

SpeedButton15: TSpeedButton;

SpeedButton16: TSpeedButton;

SpeedButton17: TSpeedButton;

SpeedButton18: TSpeedButton;

SpeedButton19: TSpeedButton;

SpeedButton20: TSpeedButton;

SpeedButton21: TSpeedButton;

SpeedButton22: TSpeedButton;

SpeedButton23: TSpeedButton;

SpeedButton25: TSpeedButton;

SpeedButton26: TSpeedButton;

SpeedButton27: TSpeedButton;

SpeedButton28: TSpeedButton;

SpeedButton29: TSpeedButton;

SpeedButton30: TSpeedButton;

SpeedButton31: TSpeedButton;

SpeedButton32: TSpeedButton;

SpeedButton33: TSpeedButton;

SpeedButton34: TSpeedButton;

SpeedButton35: TSpeedButton;

RichEdit1: TRichEdit;

Button1: TButton;

Button2: TButton;

Button3: TButton;

procedure Button1Click(Sender: TObject);

procedure SpeedButton1Click(Sender: TObject);

procedure SpeedButton2Click(Sender: TObject);

procedure SpeedButton3Click(Sender: TObject);

procedure SpeedButton4Click(Sender: TObject);

procedure SpeedButton5Click(Sender: TObject);

procedure SpeedButton6Click(Sender: TObject);

procedure SpeedButton7Click(Sender: TObject);

procedure SpeedButton8Click(Sender: TObject);

procedure SpeedButton9Click(Sender: TObject);

procedure SpeedButton10Click(Sender: TObject);

procedure SpeedButton11Click(Sender: TObject);

procedure SpeedButton12Click(Sender: TObject);

procedure SpeedButton13Click(Sender: TObject);

procedure SpeedButton14Click(Sender: TObject);

procedure SpeedButton15Click(Sender: TObject);

procedure SpeedButton16Click(Sender: TObject);

procedure SpeedButton17Click(Sender: TObject);

procedure SpeedButton18Click(Sender: TObject);

procedure SpeedButton19Click(Sender: TObject);

procedure SpeedButton20Click(Sender: TObject);

procedure SpeedButton21Click(Sender: TObject);

procedure SpeedButton22Click(Sender: TObject);

procedure SpeedButton23Click(Sender: TObject);

procedure SpeedButton25Click(Sender: TObject);

procedure SpeedButton26Click(Sender: TObject);

procedure SpeedButton27Click(Sender: TObject);

procedure SpeedButton28Click(Sender: TObject);

procedure SpeedButton29Click(Sender: TObject);

procedure SpeedButton30Click(Sender: TObject);

procedure SpeedButton31Click(Sender: TObject);

procedure SpeedButton32Click(Sender: TObject);

procedure SpeedButton33Click(Sender: TObject);

procedure SpeedButton34Click(Sender: TObject);

procedure SpeedButton35Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure FormShow(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

FormDir: TFormDir;

implementation

uses GlavMenu;

{$R *.dfm}

procedure TFormDir.Button1Click(Sender: TObject);

begin

RichEdit1.Lines.SaveToFile('List to director.rtf');

ShowMessage(' Письмо директору сохранено ');

FormDir.Close;

end;

procedure TFormDir.SpeedButton1Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'й';

end;

procedure TFormDir.SpeedButton2Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'ц';

end;

procedure TFormDir.SpeedButton3Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'у';

end;

procedure TFormDir.SpeedButton4Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'к';

end;

procedure TFormDir.SpeedButton5Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'е';

end;

procedure TFormDir.SpeedButton6Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'н';

end;

procedure TFormDir.SpeedButton7Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'г';

end;

procedure TFormDir.SpeedButton8Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'ш';

end;

procedure TFormDir.SpeedButton9Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'щ';

end;

procedure TFormDir.SpeedButton10Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'з';

end;

procedure TFormDir.SpeedButton11Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'х';

end;

procedure TFormDir.SpeedButton12Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'ъ';

end;

procedure TFormDir.SpeedButton13Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'ф';

end;

procedure TFormDir.SpeedButton14Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'ы';

end;

procedure TFormDir.SpeedButton15Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'в';

end;

procedure TFormDir.SpeedButton16Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'а';

end;

procedure TFormDir.SpeedButton17Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'п';

end;

procedure TFormDir.SpeedButton18Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'р';

end;

procedure TFormDir.SpeedButton19Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'о';

end;

procedure TFormDir.SpeedButton20Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'л';

end;

procedure TFormDir.SpeedButton21Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'д';

end;

procedure TFormDir.SpeedButton22Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'ж';

end;

procedure TFormDir.SpeedButton23Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'э';

end;

procedure TFormDir.SpeedButton25Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'я';

end;

procedure TFormDir.SpeedButton26Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'ч';

end;

procedure TFormDir.SpeedButton27Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'с';

end;

procedure TFormDir.SpeedButton28Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'м';

end;

procedure TFormDir.SpeedButton29Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'и';

end;

procedure TFormDir.SpeedButton30Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'т';

end;

procedure TFormDir.SpeedButton31Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'ь';

end;

procedure TFormDir.SpeedButton32Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'б';

end;

procedure TFormDir.SpeedButton33Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'ю';

end;

procedure TFormDir.SpeedButton34Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'.';

end;

procedure TFormDir.SpeedButton35Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+',';

end;

procedure TFormDir.Button2Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+' ';

end;

procedure TFormDir.Button3Click(Sender: TObject);

begin

FormDir.close;

end;

procedure TFormDir.FormCreate(Sender: TObject);

begin

FormDir.WindowState:=wsMaximized;

FormDir.BorderStyle:=bsNone;

FormDir.Width:=Screen.Width;

FormDir.Height:=Screen.Height;

RichEdit1.Width:=FormDir.Width-20;

RichEdit1.Height:=FormDir.Height div 3;

SpeedButton1.Width:=50;

SpeedButton2.Width:=50;

SpeedButton3.Width:=50;

SpeedButton4.Width:=50;

SpeedButton5.Width:=50;

SpeedButton6.Width:=50;

SpeedButton7.Width:=50;

SpeedButton8.Width:=50;

SpeedButton9.Width:=50;

SpeedButton10.Width:=50;

SpeedButton11.Width:=50;

SpeedButton12.Width:=50;

SpeedButton13.Width:=50;

SpeedButton14.Width:=50;

SpeedButton15.Width:=50;

SpeedButton16.Width:=50;

SpeedButton17.Width:=50;

SpeedButton18.Width:=50;

SpeedButton19.Width:=50;

SpeedButton20.Width:=50;

SpeedButton21.Width:=50;

SpeedButton22.Width:=50;

SpeedButton23.Width:=50;

SpeedButton25.Width:=50;

SpeedButton26.Width:=50;

SpeedButton27.Width:=50;

SpeedButton28.Width:=50;

SpeedButton29.Width:=50;

SpeedButton30.Width:=50;

SpeedButton31.Width:=50;

SpeedButton32.Width:=50;

SpeedButton33.Width:=50;

SpeedButton34.Width:=50;

SpeedButton35.Width:=50;

SpeedButton1.Left:=FormDir.Width div 4;

SpeedButton1.Top:=RichEdit1.Height+50;

SpeedButton2.Top:=RichEdit1.Height+50;

SpeedButton3.Top:=RichEdit1.Height+50;

SpeedButton4.Top:=RichEdit1.Height+50;

SpeedButton5.Top:=RichEdit1.Height+50;

SpeedButton6.Top:=RichEdit1.Height+50;

SpeedButton7.Top:=RichEdit1.Height+50;

SpeedButton8.Top:=RichEdit1.Height+50;

SpeedButton9.Top:=RichEdit1.Height+50;

SpeedButton10.Top:=RichEdit1.Height+50;

SpeedButton11.Top:=RichEdit1.Height+50;

SpeedButton12.Top:=RichEdit1.Height+50;

SpeedButton13.Top:=RichEdit1.Height+SpeedButton1.Width+50;

SpeedButton14.Top:=RichEdit1.Height+SpeedButton1.Width+50;

SpeedButton15.Top:=RichEdit1.Height+SpeedButton1.Width+50;

SpeedButton16.Top:=RichEdit1.Height+SpeedButton1.Width+50;

SpeedButton17.Top:=RichEdit1.Height+SpeedButton1.Width+50;

SpeedButton18.Top:=RichEdit1.Height+SpeedButton1.Width+50;

SpeedButton19.Top:=RichEdit1.Height+SpeedButton1.Width+50;

SpeedButton20.Top:=RichEdit1.Height+SpeedButton1.Width+50;

SpeedButton21.Top:=RichEdit1.Height+SpeedButton1.Width+50;

SpeedButton22.Top:=RichEdit1.Height+SpeedButton1.Width+50;

SpeedButton23.Top:=RichEdit1.Height+SpeedButton1.Width+50;

SpeedButton25.Top:=RichEdit1.Height+SpeedButton1.Width+SpeedButton1.Width+50;

SpeedButton26.Top:=RichEdit1.Height+SpeedButton1.Width+SpeedButton1.Width+50;

SpeedButton27.Top:=RichEdit1.Height+SpeedButton1.Width+SpeedButton1.Width+50;

SpeedButton28.Top:=RichEdit1.Height+SpeedButton1.Width+SpeedButton1.Width+50;

SpeedButton29.Top:=RichEdit1.Height+SpeedButton1.Width+SpeedButton1.Width+50;

SpeedButton30.Top:=RichEdit1.Height+SpeedButton1.Width+SpeedButton1.Width+50;

SpeedButton31.Top:=RichEdit1.Height+SpeedButton1.Width+SpeedButton1.Width+50;

SpeedButton32.Top:=RichEdit1.Height+SpeedButton1.Width+SpeedButton1.Width+50;

SpeedButton33.Top:=RichEdit1.Height+SpeedButton1.Width+SpeedButton1.Width+50;

SpeedButton34.Top:=RichEdit1.Height+SpeedButton1.Width+SpeedButton1.Width+50;

SpeedButton35.Top:=RichEdit1.Height+SpeedButton1.Width+SpeedButton1.Width+50;

Button2.Top:=RichEdit1.Height+SpeedButton1.Width+SpeedButton1.Width+SpeedButton1.Width+70;

SpeedButton1.Height:=SpeedButton1.Width;

SpeedButton2.Height:=SpeedButton1.Width;

SpeedButton3.Height:=SpeedButton1.Width;

SpeedButton4.Height:=SpeedButton1.Width;

SpeedButton5.Height:=SpeedButton1.Width;

SpeedButton6.Height:=SpeedButton1.Width;

SpeedButton7.Height:=SpeedButton1.Width;

SpeedButton8.Height:=SpeedButton1.Width;

SpeedButton9.Height:=SpeedButton1.Width;

SpeedButton10.Height:=SpeedButton1.Width;

SpeedButton11.Height:=SpeedButton1.Width;

SpeedButton12.Height:=SpeedButton1.Width;

SpeedButton13.Height:=SpeedButton1.Width;

SpeedButton14.Height:=SpeedButton1.Width;

SpeedButton15.Height:=SpeedButton1.Width;

SpeedButton16.Height:=SpeedButton1.Width;

SpeedButton17.Height:=SpeedButton1.Width;

SpeedButton18.Height:=SpeedButton1.Width;

SpeedButton19.Height:=SpeedButton1.Width;

SpeedButton20.Height:=SpeedButton1.Width;

SpeedButton21.Height:=SpeedButton1.Width;

SpeedButton22.Height:=SpeedButton1.Width;

SpeedButton23.Height:=SpeedButton1.Width;

SpeedButton25.Height:=SpeedButton1.Width;

SpeedButton26.Height:=SpeedButton1.Width;

SpeedButton27.Height:=SpeedButton1.Width;

SpeedButton28.Height:=SpeedButton1.Width;

SpeedButton29.Height:=SpeedButton1.Width;

SpeedButton30.Height:=SpeedButton1.Width;

SpeedButton31.Height:=SpeedButton1.Width;

SpeedButton32.Height:=SpeedButton1.Width;

SpeedButton33.Height:=SpeedButton1.Width;

SpeedButton34.Height:=SpeedButton1.Width;

SpeedButton35.Height:=SpeedButton1.Width;

SpeedButton2.Left:=SpeedButton1.Left+SpeedButton1.Width;

SpeedButton3.Left:=SpeedButton2.Left+SpeedButton1.Width;

SpeedButton4.Left:=SpeedButton3.Left+SpeedButton1.Width;

SpeedButton5.Left:=SpeedButton4.Left+SpeedButton1.Width;

SpeedButton6.Left:=SpeedButton5.Left+SpeedButton1.Width;

SpeedButton7.Left:=SpeedButton6.Left+SpeedButton1.Width;

SpeedButton8.Left:=SpeedButton7.Left+SpeedButton1.Width;

SpeedButton9.Left:=SpeedButton8.Left+SpeedButton1.Width;

SpeedButton10.Left:=SpeedButton9.Left+SpeedButton1.Width;

SpeedButton11.Left:=SpeedButton10.Left+SpeedButton1.Width;

SpeedButton12.Left:=SpeedButton11.Left+SpeedButton1.Width;

SpeedButton13.Left:=SpeedButton1.Left;

SpeedButton14.Left:=SpeedButton13.Left+SpeedButton1.Width;

SpeedButton15.Left:=SpeedButton14.Left+SpeedButton1.Width;

SpeedButton16.Left:=SpeedButton15.Left+SpeedButton1.Width;

SpeedButton17.Left:=SpeedButton16.Left+SpeedButton1.Width;

SpeedButton18.Left:=SpeedButton17.Left+SpeedButton1.Width;

SpeedButton19.Left:=SpeedButton18.Left+SpeedButton1.Width;

SpeedButton20.Left:=SpeedButton19.Left+SpeedButton1.Width;

SpeedButton21.Left:=SpeedButton20.Left+SpeedButton1.Width;

SpeedButton22.Left:=SpeedButton21.Left+SpeedButton1.Width;

SpeedButton23.Left:=SpeedButton22.Left+SpeedButton1.Width;

SpeedButton25.Left:=SpeedButton1.Left;

SpeedButton26.Left:=SpeedButton25.Left+SpeedButton1.Width;

SpeedButton27.Left:=SpeedButton26.Left+SpeedButton1.Width;

SpeedButton28.Left:=SpeedButton27.Left+SpeedButton1.Width;

SpeedButton29.Left:=SpeedButton28.Left+SpeedButton1.Width;

SpeedButton30.Left:=SpeedButton29.Left+SpeedButton1.Width;

SpeedButton31.Left:=SpeedButton30.Left+SpeedButton1.Width;

SpeedButton32.Left:=SpeedButton31.Left+SpeedButton1.Width;

SpeedButton33.Left:=SpeedButton32.Left+SpeedButton1.Width;

SpeedButton34.Left:=SpeedButton33.Left+SpeedButton1.Width;

SpeedButton35.Left:=SpeedButton34.Left+SpeedButton1.Width;

Button2.Left:=SpeedButton28.Left;

Button2.Width:=SpeedButton1.Width*5;

Button2.Height:=SpeedButton1.Width;

Button3.Top:=Button2.Top+Button2.Height+50;

Button3.Left:=SpeedButton1.Left;

Button3.Width:=SpeedButton1.Width*4;

Button3.Height:=SpeedButton1.Width;

Button1.Top:=Button3.Top;

Button1.Left:=SpeedButton33.Left;

Button1.Width:=SpeedButton1.Width*4;

Button1.Height:=SpeedButton1.Width;

end;

procedure TFormDir.FormShow(Sender: TObject);

begin

RichEdit1.Text:='';

end;

end.

Модульподраздела «Книгажалобипожеланий»

unit Kniga;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ComCtrls, Buttons;

type

TFormKniga = class(TForm)

SpeedButton1: TSpeedButton;

SpeedButton2: TSpeedButton;

SpeedButton3: TSpeedButton;

SpeedButton4: TSpeedButton;

SpeedButton5: TSpeedButton;

SpeedButton6: TSpeedButton;

SpeedButton7: TSpeedButton;

SpeedButton8: TSpeedButton;

SpeedButton9: TSpeedButton;

SpeedButton10: TSpeedButton;

SpeedButton11: TSpeedButton;

SpeedButton12: TSpeedButton;

SpeedButton13: TSpeedButton;

SpeedButton14: TSpeedButton;

SpeedButton15: TSpeedButton;

SpeedButton16: TSpeedButton;

SpeedButton17: TSpeedButton;

SpeedButton18: TSpeedButton;

SpeedButton19: TSpeedButton;

SpeedButton20: TSpeedButton;

SpeedButton21: TSpeedButton;

SpeedButton22: TSpeedButton;

SpeedButton23: TSpeedButton;

SpeedButton25: TSpeedButton;

SpeedButton26: TSpeedButton;

SpeedButton27: TSpeedButton;

SpeedButton28: TSpeedButton;

SpeedButton29: TSpeedButton;

SpeedButton30: TSpeedButton;

SpeedButton31: TSpeedButton;

SpeedButton32: TSpeedButton;

SpeedButton33: TSpeedButton;

SpeedButton34: TSpeedButton;

SpeedButton35: TSpeedButton;

RichEdit1: TRichEdit;

Button1: TButton;

Button2: TButton;

Button3: TButton;

procedure Button1Click(Sender: TObject);

procedure SpeedButton1Click(Sender: TObject);

procedure SpeedButton2Click(Sender: TObject);

procedure SpeedButton3Click(Sender: TObject);

procedure SpeedButton4Click(Sender: TObject);

procedure SpeedButton5Click(Sender: TObject);

procedure SpeedButton6Click(Sender: TObject);

procedure SpeedButton7Click(Sender: TObject);

procedure SpeedButton8Click(Sender: TObject);

procedure SpeedButton9Click(Sender: TObject);

procedure SpeedButton10Click(Sender: TObject);

procedure SpeedButton11Click(Sender: TObject);

procedure SpeedButton12Click(Sender: TObject);

procedure SpeedButton13Click(Sender: TObject);

procedure SpeedButton14Click(Sender: TObject);

procedure SpeedButton15Click(Sender: TObject);

procedure SpeedButton16Click(Sender: TObject);

procedure SpeedButton17Click(Sender: TObject);

procedure SpeedButton18Click(Sender: TObject);

procedure SpeedButton19Click(Sender: TObject);

procedure SpeedButton20Click(Sender: TObject);

procedure SpeedButton21Click(Sender: TObject);

procedure SpeedButton22Click(Sender: TObject);

procedure SpeedButton23Click(Sender: TObject);

procedure SpeedButton25Click(Sender: TObject);

procedure SpeedButton26Click(Sender: TObject);

procedure SpeedButton27Click(Sender: TObject);

procedure SpeedButton28Click(Sender: TObject);

procedure SpeedButton29Click(Sender: TObject);

procedure SpeedButton30Click(Sender: TObject);

procedure SpeedButton31Click(Sender: TObject);

procedure SpeedButton32Click(Sender: TObject);

procedure SpeedButton33Click(Sender: TObject);

procedure SpeedButton34Click(Sender: TObject);

procedure SpeedButton35Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure FormShow(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

FormKniga: TFormKniga;

implementation

uses GlavMenu, PismoDir;

{$R *.dfm}

procedure TFormKniga.Button1Click(Sender: TObject);

begin

RichEdit1.Lines.SaveToFile('ZP.rtf');

ShowMessage(' Добавлено ');

FormKniga.Close;

end;

procedure TFormKniga.SpeedButton1Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'й';

end;

procedure TFormKniga.SpeedButton2Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'ц';

end;

procedure TFormKniga.SpeedButton3Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'у';

end;

procedure TFormKniga.SpeedButton4Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'к';

end;

procedure TFormKniga.SpeedButton5Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'е';

end;

procedure TFormKniga.SpeedButton6Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'н';

end;

procedure TFormKniga.SpeedButton7Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'г';

end;

procedure TFormKniga.SpeedButton8Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'ш';

end;

procedure TFormKniga.SpeedButton9Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'щ';

end;

procedure TFormKniga.SpeedButton10Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'з';

end;

procedure TFormKniga.SpeedButton11Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'х';

end;

procedure TFormKniga.SpeedButton12Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'ъ';

end;

procedure TFormKniga.SpeedButton13Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'ф';

end;

procedure TFormKniga.SpeedButton14Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'ы';

end;

procedure TFormKniga.SpeedButton15Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'в';

end;

procedure TFormKniga.SpeedButton16Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'а';

end;

procedure TFormKniga.SpeedButton17Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'п';

end;

procedure TFormKniga.SpeedButton18Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'р';

end;

procedure TFormKniga.SpeedButton19Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'о';

end;

procedure TFormKniga.SpeedButton20Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'л';

end;

procedure TFormKniga.SpeedButton21Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'д';

end;

procedure TFormKniga.SpeedButton22Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'ж';

end;

procedure TFormKniga.SpeedButton23Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'э';

end;

procedure TFormKniga.SpeedButton25Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'я';

end;

procedure TFormKniga.SpeedButton26Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'ч';

end;

procedure TFormKniga.SpeedButton27Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'с';

end;

procedure TFormKniga.SpeedButton28Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'м';

end;

procedure TFormKniga.SpeedButton29Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'и';

end;

procedure TFormKniga.SpeedButton30Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'т';

end;

procedure TFormKniga.SpeedButton31Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'ь';

end;

procedure TFormKniga.SpeedButton32Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'б';

end;

procedure TFormKniga.SpeedButton33Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'ю';

end;

procedure TFormKniga.SpeedButton34Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+'.';

end;

procedure TFormKniga.SpeedButton35Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+',';

end;

procedure TFormKniga.Button2Click(Sender: TObject);

begin

RichEdit1.Text:=RichEdit1.Text+' ';

end;

procedure TFormKniga.Button3Click(Sender: TObject);

begin

FormKniga.close;

end;

procedure TFormKniga.FormCreate(Sender: TObject);

begin

FormKniga.WindowState:=wsMaximized;

FormKniga.BorderStyle:=bsNone;

FormKniga.Width:=Screen.Width;

FormKniga.Height:=Screen.Height;

RichEdit1.Width:=FormKniga.Width-20;

RichEdit1.Height:=FormKniga.Height div 3;

SpeedButton1.Width:=50;

SpeedButton2.Width:=50;

SpeedButton3.Width:=50;

SpeedButton4.Width:=50;

SpeedButton5.Width:=50;

SpeedButton6.Width:=50;

SpeedButton7.Width:=50;

SpeedButton8.Width:=50;

SpeedButton9.Width:=50;

SpeedButton10.Width:=50;

SpeedButton11.Width:=50;

SpeedButton12.Width:=50;

SpeedButton13.Width:=50;

SpeedButton14.Width:=50;

SpeedButton15.Width:=50;

SpeedButton16.Width:=50;

SpeedButton17.Width:=50;

SpeedButton18.Width:=50;

SpeedButton19.Width:=50;

SpeedButton20.Width:=50;

SpeedButton21.Width:=50;

SpeedButton22.Width:=50;

SpeedButton23.Width:=50;

SpeedButton25.Width:=50;

SpeedButton26.Width:=50;

SpeedButton27.Width:=50;

SpeedButton28.Width:=50;

SpeedButton29.Width:=50;

SpeedButton30.Width:=50;

SpeedButton31.Width:=50;

SpeedButton32.Width:=50;

SpeedButton33.Width:=50;

SpeedButton34.Width:=50;

SpeedButton35.Width:=50;

SpeedButton1.Left:=FormKniga.Width div 4;

SpeedButton1.Top:=RichEdit1.Height+50;

SpeedButton2.Top:=RichEdit1.Height+50;

SpeedButton3.Top:=RichEdit1.Height+50;

SpeedButton4.Top:=RichEdit1.Height+50;

SpeedButton5.Top:=RichEdit1.Height+50;

SpeedButton6.Top:=RichEdit1.Height+50;

SpeedButton7.Top:=RichEdit1.Height+50;

SpeedButton8.Top:=RichEdit1.Height+50;

SpeedButton9.Top:=RichEdit1.Height+50;

SpeedButton10.Top:=RichEdit1.Height+50;

SpeedButton11.Top:=RichEdit1.Height+50;

SpeedButton12.Top:=RichEdit1.Height+50;

SpeedButton13.Top:=RichEdit1.Height+SpeedButton1.Width+50;

SpeedButton14.Top:=RichEdit1.Height+SpeedButton1.Width+50;

SpeedButton15.Top:=RichEdit1.Height+SpeedButton1.Width+50;

SpeedButton16.Top:=RichEdit1.Height+SpeedButton1.Width+50;

SpeedButton17.Top:=RichEdit1.Height+SpeedButton1.Width+50;

SpeedButton18.Top:=RichEdit1.Height+SpeedButton1.Width+50;

SpeedButton19.Top:=RichEdit1.Height+SpeedButton1.Width+50;

SpeedButton20.Top:=RichEdit1.Height+SpeedButton1.Width+50;

SpeedButton21.Top:=RichEdit1.Height+SpeedButton1.Width+50;

SpeedButton22.Top:=RichEdit1.Height+SpeedButton1.Width+50;

SpeedButton23.Top:=RichEdit1.Height+SpeedButton1.Width+50;

SpeedButton25.Top:=RichEdit1.Height+SpeedButton1.Width+SpeedButton1.Width+50;

SpeedButton26.Top:=RichEdit1.Height+SpeedButton1.Width+SpeedButton1.Width+50;

SpeedButton27.Top:=RichEdit1.Height+SpeedButton1.Width+SpeedButton1.Width+50;

SpeedButton28.Top:=RichEdit1.Height+SpeedButton1.Width+SpeedButton1.Width+50;

SpeedButton29.Top:=RichEdit1.Height+SpeedButton1.Width+SpeedButton1.Width+50;

SpeedButton30.Top:=RichEdit1.Height+SpeedButton1.Width+SpeedButton1.Width+50;

SpeedButton31.Top:=RichEdit1.Height+SpeedButton1.Width+SpeedButton1.Width+50;

SpeedButton32.Top:=RichEdit1.Height+SpeedButton1.Width+SpeedButton1.Width+50;

SpeedButton33.Top:=RichEdit1.Height+SpeedButton1.Width+SpeedButton1.Width+50;

SpeedButton34.Top:=RichEdit1.Height+SpeedButton1.Width+SpeedButton1.Width+50;

SpeedButton35.Top:=RichEdit1.Height+SpeedButton1.Width+SpeedButton1.Width+50;

Button2.Top:=RichEdit1.Height+SpeedButton1.Width+SpeedButton1.Width+SpeedButton1.Width+70;

SpeedButton1.Height:=SpeedButton1.Width;

SpeedButton2.Height:=SpeedButton1.Width;

SpeedButton3.Height:=SpeedButton1.Width;

SpeedButton4.Height:=SpeedButton1.Width;

SpeedButton5.Height:=SpeedButton1.Width;

SpeedButton6.Height:=SpeedButton1.Width;

SpeedButton7.Height:=SpeedButton1.Width;

SpeedButton8.Height:=SpeedButton1.Width;

SpeedButton9.Height:=SpeedButton1.Width;

SpeedButton10.Height:=SpeedButton1.Width;

SpeedButton11.Height:=SpeedButton1.Width;

SpeedButton12.Height:=SpeedButton1.Width;

SpeedButton13.Height:=SpeedButton1.Width;

SpeedButton14.Height:=SpeedButton1.Width;

SpeedButton15.Height:=SpeedButton1.Width;

SpeedButton16.Height:=SpeedButton1.Width;

SpeedButton17.Height:=SpeedButton1.Width;

SpeedButton18.Height:=SpeedButton1.Width;

SpeedButton19.Height:=SpeedButton1.Width;

SpeedButton20.Height:=SpeedButton1.Width;

SpeedButton21.Height:=SpeedButton1.Width;

SpeedButton22.Height:=SpeedButton1.Width;

SpeedButton23.Height:=SpeedButton1.Width;

SpeedButton25.Height:=SpeedButton1.Width;

SpeedButton26.Height:=SpeedButton1.Width;

SpeedButton27.Height:=SpeedButton1.Width;

SpeedButton28.Height:=SpeedButton1.Width;

SpeedButton29.Height:=SpeedButton1.Width;

SpeedButton30.Height:=SpeedButton1.Width;

SpeedButton31.Height:=SpeedButton1.Width;

SpeedButton32.Height:=SpeedButton1.Width;

SpeedButton33.Height:=SpeedButton1.Width;

SpeedButton34.Height:=SpeedButton1.Width;

SpeedButton35.Height:=SpeedButton1.Width;

SpeedButton2.Left:=SpeedButton1.Left+SpeedButton1.Width;

SpeedButton3.Left:=SpeedButton2.Left+SpeedButton1.Width;

SpeedButton4.Left:=SpeedButton3.Left+SpeedButton1.Width;

SpeedButton5.Left:=SpeedButton4.Left+SpeedButton1.Width;

SpeedButton6.Left:=SpeedButton5.Left+SpeedButton1.Width;

SpeedButton7.Left:=SpeedButton6.Left+SpeedButton1.Width;

SpeedButton8.Left:=SpeedButton7.Left+SpeedButton1.Width;

SpeedButton9.Left:=SpeedButton8.Left+SpeedButton1.Width;

SpeedButton10.Left:=SpeedButton9.Left+SpeedButton1.Width;

SpeedButton11.Left:=SpeedButton10.Left+SpeedButton1.Width;

SpeedButton12.Left:=SpeedButton11.Left+SpeedButton1.Width;

SpeedButton13.Left:=SpeedButton1.Left;

SpeedButton14.Left:=SpeedButton13.Left+SpeedButton1.Width;

SpeedButton15.Left:=SpeedButton14.Left+SpeedButton1.Width;

SpeedButton16.Left:=SpeedButton15.Left+SpeedButton1.Width;

SpeedButton17.Left:=SpeedButton16.Left+SpeedButton1.Width;

SpeedButton18.Left:=SpeedButton17.Left+SpeedButton1.Width;

SpeedButton19.Left:=SpeedButton18.Left+SpeedButton1.Width;

SpeedButton20.Left:=SpeedButton19.Left+SpeedButton1.Width;

SpeedButton21.Left:=SpeedButton20.Left+SpeedButton1.Width;

SpeedButton22.Left:=SpeedButton21.Left+SpeedButton1.Width;

SpeedButton23.Left:=SpeedButton22.Left+SpeedButton1.Width;

SpeedButton25.Left:=SpeedButton1.Left;

SpeedButton26.Left:=SpeedButton25.Left+SpeedButton1.Width;

SpeedButton27.Left:=SpeedButton26.Left+SpeedButton1.Width;

SpeedButton28.Left:=SpeedButton27.Left+SpeedButton1.Width;

SpeedButton29.Left:=SpeedButton28.Left+SpeedButton1.Width;

SpeedButton30.Left:=SpeedButton29.Left+SpeedButton1.Width;

SpeedButton31.Left:=SpeedButton30.Left+SpeedButton1.Width;

SpeedButton32.Left:=SpeedButton31.Left+SpeedButton1.Width;

SpeedButton33.Left:=SpeedButton32.Left+SpeedButton1.Width;

SpeedButton34.Left:=SpeedButton33.Left+SpeedButton1.Width;

SpeedButton35.Left:=SpeedButton34.Left+SpeedButton1.Width;

Button2.Left:=SpeedButton28.Left;

Button2.Width:=SpeedButton1.Width*5;

Button2.Height:=SpeedButton1.Width;

Button3.Top:=Button2.Top+Button2.Height+50;

Button3.Left:=SpeedButton1.Left;

Button3.Width:=SpeedButton1.Width*4;

Button3.Height:=SpeedButton1.Width;

Button1.Top:=Button3.Top;

Button1.Left:=SpeedButton33.Left;

Button1.Width:=SpeedButton1.Width*4;

Button1.Height:=SpeedButton1.Width;

end;

procedure TFormKniga.FormShow(Sender: TObject);

begin

RichEdit1.Text:='';

end;

end.

Просмотров работы: 6105