close

Вход

Забыли?

вход по аккаунту

?

Пояснительная записка(3)

код для вставкиСкачать
Федеральное агентство по образованию
_____________________________________________________________
Государственное образовательное учреждение
Высшего профессионального образования
Санкт Петербургский государственный технологический институт
(Технический университет)
_____________________________________________________________
Кафедра систем автоматизированного проектирования и управления
Курсовой проект по дисциплине:
Операционные системы
Пояснительная записка к курсовому проекту
Тема проекта: Создание приложений для операционной
системы Microsoft Windows
Исполнитель
Студент гp. 415 _____________________А.А. Бельковский
(подпись дата)
Руководитель
доц. каф. САПР и У _____________________H.П. Жадановская
(подпись дата)
-___________________
(оценка)
Санкт Петербург
2013 2014 учебный год
ОГЛАВЛЕНИЕ
СОКРАЩЕНИЯ, УСЛОВНЫЕ ОБОЗНАЧЕНИЯ И КЛЮЧЕВЫЕ СЛОВА7
ВВЕДЕНИЕ8
АНАЛИТИЧЕСКИЙ ОБЗОР9
ТРЕБОВАНИЯ К ПРОГРАММЕ10
СТРУКТУРА ДАННЫХ11
ИСКЛЮЧИТЕЛЬНЫЕ СИТУАЦИИ14
ОСНОВНЫЕ ДИСПЛЕЙНЫЕ ФРАГМЕНТЫ15
СТРУКТУРА ПРОГРАММЫ19
ОПИСАНИЯ ЯЗЫКА ПРОГРАММИРОВАНИЯ20
ИЕРАРХИЧЕСКАЯ СХЕМА РЕШЕНИЯ ЗАДАЧИ22
СПРАВОЧНАЯ СИСТЕМА23
УСТАНОВОЧНЫЙ CD24
АНАЛИЗ РЕЗУЛЬТАТОВ МАШИННОГО ЭКСПЕРИМЕНТА25
ЗАКЛЮЧЕНИЕ26
СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ27
ПРИЛОЖЕНИЕ А ОПИСАНИЕ КОМПАКТ ДИСКА28
ПРИЛОЖЕНИЕ Б РУКОВОДСТВО СИСТЕМНОГО ПРОГРАММИСТА29
ПРИЛОЖЕНИЕ В ЛИСТИНГ ПРОГРАММЫ31
ИНДИВИДУАЛЬНОЕ ЗАДАНИЕ: Вариант № 2
Задача для разработки приложения
Каждая операционная система предоставляет два уровня интерфейса: пользовательский и программный (API - application programming interface). Целью курсового проектирования является закрепление практических умений, полученных на лабораторных занятиях, и получение дополнительных навыков по использованию программного интерфейса операционной системы при создании прикладных приложений (на примере операционной системы Microsoft Windows*). Тема курсового проекта -проектирование и создание прикладной программы, обеспечивающей возможность мониторинга конкретных параметров технологического процесса. Разрабатываемая программа является обязательной подсистемой будущих курсовых проектов в технологическом институте на кафедре САПР и У по специальным дисциплинам, т.о. при формулировании заданий на курсовое проектирование учитывалась тесная связь дисциплины "Операционные системы" с другими дисциплинами специальности.
На примере разрабатываемой программы, д.б. показаны следующие примеры реализации (основные темы курса "Операционные системы"):
* работа с файлами (хранение и модификация опытных данных, сохранение различных опытов и т.д.), * возможности виртуальной организации основной памяти (организация динамических библиотек, например, для создания библиотек различных моделей), * использование средств межпроцессных коммуникаций (таких как буфер обмена, встраиваемые объекты, позволяющие использовать мультимедийные возможности современной операционной системы),
* использование основной конфигурационной базы системы - реестра (например, для организации хранения параметров конфигурации разрабатываемого приложения).
* создание стандартной помощи в разрабатываемом приложении, * создание файлов SETUP для переноса и развертывания своего приложения на любом компьютере, и т.д
Перечисленные возможности используются во всех современных программах, а их реализация зависит не столько от возможностей языка программирования, сколько от возможностей, предоставляемых конкретной операционной системой. При формировании требований к разрабатываемой программе каждый студент вместе с преподавателем определяет свой список возможных примеров для реализации, например: * исходные данные помещаются в файлы, определенного разработчиком формата, * в программе предусматривается возможность корректировки исходных данных, * предлагается набор основных функций для графического вывода параметров,
* на диаграммах можно показать наиболее соответствующую параметрам функцию, * обеспечивается возможность сформированные отчеты сохранить в Word или Excel, для последующей работы с ними, * предлагаются средства для просмотра видео записи технологического процесса. и т.д.
Вариант 4803-02
Опыт № 1 Дата:3 сентября 2013 г.
Расход, кг/секВыходные параметрыУровень, ДМТемпература, С00,9890,18211,3950,88121,9482,56932,4655,72242,93710,84053,39718,12963,83328,89974,25842,55484,64158,77394,97677,033105,25198,822115,495122,307125,581148,914135,625175,672145,593206,119155,496232,754165,351256,369175,177284,254184,997308,692194,826324,516204,675332,664214,545337,708224,423337,634234,289334,422244,111326,346
Санкт-Петербургский государственный технологический институт (технический университет)
Факультет информационных технологий и управления
Кафедра систем автоматизированного проектирования и управления
ЗАДАНИЕ
на курсовой проект по учебной дисциплине
"Операционные системы" УГС 230000 - Информатика и вычислительная техника Направление подготовки 230100 - Информатика и вычислительная техника
Уровень подготовки Бакалавр 230100 - "Информатика и вычислительная техника"
Студент(ка) Бельковский Александр Александрович Группа 415 (фамилия, имя, отчество)
Тема Создание приложения для операционной системы MS Windows: Мониторинг технологических параметров
Исходные данные к работе
Нормативная информация к системе: №2
Уровень. ДМ (0,989 до 4,111 ) , Температура, С (0,182 до 326,346)
1 Таненбаум Э. Современные операционные системы: Перевод с английского. СПб.: "Питер", 2006. - 1037 с.
2 Азбука программирования в Win32 API. -М.: Горячая линия - Телеком, 2001. -312с. 3 Саймон Р. Microsoft Windows API: Справочник системного программиста: Перевод с англ. -М: ДиаСофт, 2004. - 1200 с.
4 Гультяев А. К. Help. Разработка справочных систем. Учебный курс СПб.: "Питер", 2004. - 272 с. 5 Жадановская Н.П. Операционные системы : конспект лекций
6 Жадановская. Н.П. Создание приложений для операционной системы Microsoft Windows. Методические указания к курсовому проектированию. - СПБ.: СПб ГТИ (ТУ), 2006. - 64с.
7 Портал: Операционные системы [Электронный ресурс]: Электронные данные - Режим доступа: http://citforum.ru/operating_systems/ свободный
8 Портал: Русский MSDN[Электронный ресурс]: Электронные данные - Режим доступа: http:// msdn.microsoft.com, свободный.
9 Портал: Форум программистов и сисадминов CyberForum.ru [Электронный ресурс]; Электронные данные - Режим доступа: http://www.cyberforum.ru/.
10 Архангельский А.Я. Программирование в C++ Builder - 2010: Москва. - "Бином-Пресс", 2010г. - 896с.
Перечень вопросов, подлежащих разработке
Обзор имеющихся на рынке аналогичных программных продуктов и формирование требований к интерфейсу разрабатываемого приложения под Windows * Анализ технологии разработки программного обеспечения в среде RAD (RAD - rapid application development) Использование Microsoft Windows API (API - application programming interface) Возможности технологии Active X компании Microsoft
Установка программного продукта в операционной системе и анализ возможностей для переноса приложения на другой компьютер
Определение структурной (иерархической) схемы решения задачи и требования к проектируемой программе.
Разработка структуры данных, определение диапазона изменений Анализ ограничений и исключительных ситуаций для алгоритмов Разработка архитектуры программы Разработка дисплейных фрагментов Разработка основных алгоритмов задачи Написание и отладка модулей программы Создание справочной системы приложения Тестирование разработанного программного продукта Создание установочного CD-ROM Разработка эксплуатационного документа "Руководство системного программиста" Оформление документации (пояснительной записки) по курсовому проекту
Перечень графического материала
1 Структура программы
2 Исключительные ситуации
3 Алгоритмы реализованных математических методов 4 Карта меню
5 Основные дисплейные фрагменты 6 Тестовые примеры работы системы Требования к аппаратному и программному обеспечению
Intel Core i5 CPU 2.53 GHz ; ОЗУ 8 Гб ; Mobility ATI Radeon HD 6500 1Гб ; ЖД SATA 500Г.
ОС Windows 7 Ultimate x64 ; Среда разработки RAD Studio XE5; Консультант ________________________________________________________________
Дата выдачи задания 03.09.2013 (05.09.2013)
Дата представления курсовой работы к защите 10.12.2013 (12.12.13)
Зав. кафедрой И.В. Новожилова (подпись, дата) (инициалы, фамилия)
Лектор Н.П.Жадановская (подпись, дата) (инициалы, фамилия)
Руководитель Н.П. Жадановская
(подпись, дата) (инициалы, фамилия)
Задание принял к выполнению студент (подпись, дата)
СОКРАЩЕНИЯ, УСЛОВНЫЕ ОБОЗНАЧЕНИЯ И КЛЮЧЕВЫЕ СЛОВА
* RAD - Rapid Application Development (Пакет быстрой разработки приложений);
* API - Application Programming Interface (Программный интерфейс приложения);
* OS (или ОС) - Operating System (Операционные системы);
* OLE - Object Linking and Embedding (Технология связывания и внедрения объектов в другие документы и объекты);
* VCL - Visual Component Library (Библиотека визуальных компонент);
ВВЕДЕНИЕ
"Операционные системы" является одной из дисциплин специальности "Системы автоматизированного проектирования". Цель курсового проекта: закрепления практических навыков, полученных на лабораторных занятиях, и получение дополнительных навыков по созданию прикладных приложений для операционной системы Microsoft Windows, включающее проработку следующих вопросов:
* использование Microsoft Windows 32 API; * использование возможностей технологии Active X компании Microsoft;
* программирование графики и мультимедиа;
* создание справочной системы Windows приложения;
* создание инсталляционных CD, позволяющих устанавливать программное обеспечение на любом ПК с операционной системе Microsoft Windows; * знакомство и использование единой системы программной документации (ЕСПД) - комплекса государственных стандартов, устанавливающих взаимоувязанные правила разработки, оформления и обращения программ и программной документации и обеспечивающих снижение трудоемкости и повышение эффективности разработки, сопровождения и эксплуатации программных изделий.
При формулировании заданий на курсовое проектирование учитывалась тесная связь дисциплины "Операционные системы" с другими дисциплинами. При выполнении заданий, включенных в курсовой проект, студентами используются знания и навыки, полученные при изучении курсов: "Технологии программирования", "Основы информатики", "Дискретная математика", "Организация ЭВМ" и т.д.
Задачами курсового проекта являются проектирование и создание прикладной программы, обеспечивающей возможность анализа различных параметров технологического процесса. Эта подсистема является обязательной составляющей будущих курсовых проектов по специальным дисциплинам специальности. На примере этой программы д.б. показаны примеры реализации вопросов, перечисленных выше, и связанных с конкретной операционной системой. АНАЛИТИЧЕСКИЙ ОБЗОР
На данный момент на рынке представлено большое количество программ реализующих функцию аппроксимации.
Это несомненно программы в которых, аппроксимация является одной из многочисленных функций (Mathcad, MatLab и другие). Прикладные программы предназначенные для решения задач технических вычислений. Эти программы имеют удобный для пользователя интерфейс.
Graph - является открытым исходным приложением для рисования математические графики в системе координат. Тот, кто хочет рисовать графики функций, найдет эту программу полезной. Программа делает возможность очень легко визуализировать функцию, и вставьте его в другую программу. Кроме того, можно сделать некоторые математические расчеты на функции.
Рисунок 1 - интерфейс программы Graph.
Как можно заметить, интерфейс во всех этих программах прости и понятен. Нет множества последовательных ссылок, вместо этого сделаны клавиши на панели быстрого доступа. Это же нужно реализовать и в своем проекте. При этом постараться не добавлять ничего лишнего на главную панель. Следует сделать на главной форме только таблицу, а все остальные дополнения к ней, такие как графики и диаграммы, следует выводить в другом окне, которое можно закрыть или свернуть, и это значит, что он не будет раздражать пользователя, а также мешать вводу данных.
ТРЕБОВАНИЯ К ПРОГРАММЕ
Приложение должно обеспечивать возможность выполнения следующих функций:
* Создание нового (пустого) проекта;
* Открытие (загрузка) существующего проекта;
* Редактирование открытого (текущего) проекта путём ввода, замены, удаления элементов с применением стандартных устройств ввода;
* Визуализация проведённых расчётов в виде графических зависимостей;
* Функция интерактивной справочной системы;
* Использование технологий Microsoft ActiveX;
* Возможность запуска и установки программы на другие компьютеры и системы;
СТРУКТУРА ДАННЫХ
* Входные данные
Основными входными данными являются массивы экспериментальных чисел, и представлены на рисунке рис. 2. Данные хранятся в файлах формата txt или rtf. Данные должны быть разделены табуляцией. Рисунок 2 - Файл исходных данных
Языковые настройки программы прописаны в файле options.ini рис.3. Во время работы с программой есть возможность выбора между английским и русским языками. Рисунок 3 - Файл настроек языка options.ini
Также для хранения аккаунтов пользователей создана база данных Accounts.mdb рис. 4.
Рисунок 4 - Список зарегистрированных пользователей
* Исходные данные
К выходным данным относятся графики рис. 4.
Рисунок 4 - Графики
ИСКЛЮЧИТЕЛЬНЫЕ СИТУАЦИИ
Исключительные ситуации описаны в табл. 1.
Таблица 1 - Исключительные ситуации
Возникшая ситуацияВывод сообщенияПользователь не заполнил ячейки таблицыВывод сообщения о наличии незаполненных ячеекПри построении графика обнаружены незаполненные ячейкиВывод сообщения о наличии незаполненных ячеекПри загрузке данных произошла ошибкаВывод сообщения об ошибки загрузки данныхПри входе в программу был неверно введён пароль или логинВывод сообщения о неверном вводе логина или пароляКакое либо из полей регистрации не заполненоВывод сообщения о том, какое поле не заполнено, а так же его подсвечивание красным цветомПри регистрации введён логин, который уже используетсяВывод сообщения о том, что введённый логин уже используетсяПосле входа в программу при изменении пароля неверно введён старый пароль Вывод сообщения о том, что введённый пароль неверныйПосле входа в программу при изменении пароля новый пароль введён первый или второй раз неверноВывод сообщения о том, что введённые новые пароли не совпадаютЗагрузочные картинки отсутствуют или перемещены Вывод сообщения о том, что картинки отсутствуют и старт программы без ожидания. ОСНОВНЫЕ ДИСПЛЕЙНЫЕ ФРАГМЕНТЫ
При запуске программы появляется загрузочная картинка в виде заполняющейся колбы рис. 6.
Рисунок 6 - Загрузочная картинка
После появляется основная форма рис. 7.
Рисунок 7 - Основная форма
На основной форме доступна возможность открыть или создать новые данные, а так же сохранить их.
После пользователю предоставляется возможность зарегистрироваться рис. 8.
Рисунок 8 - Форма регистрации
Или войти в уже существующий аккаунт рис. 9.
Рисунок 9 - Форма логина
Программа также предоставляет возможность изменять настройки фона графика и окон на вкус пользователя рис. 10.
Рисунок 10 - Настройки графика
После того как пользователь зашёл в программу, он может увидеть введённую информацию и поменять свой пароль рис. 11
Рисунок 11 - Настройки профиля
Для демонстрации ActiveX к программе был подключён Windows Media Player и Adobe Reader рис 12 и 13.
Рисунок 12 - PDF файл с исходными данными
Рисунок 13 - WMP СТРУКТУРА ПРОГРАММЫ
Структура программы предоставлена в виде карты форм рис.14.
Рисунок 14 - Карта форм
ОПИСАНИЕ ЯЗЫКА ПРОГРАММИРОВАНИЯ
Для реализации поставленной задачи была выбрана среда программирования Embarcadero RAD Studio XE5 C++ Builder.
В RAD Studio есть возможность работать с уже существующей VCL .
Компоненты, используемые при разработке в RAD Studio, встроены в среду разработки приложений и представляют собой набор типов объектов, используемых в качестве фундамента при строительстве приложения. Элементы данной среды представляют собой компоненты, которыми мы управляем с помощью их методов и их свойств. В отличии от других сред разработки приложений, Builder представляет огромное количество стандартных компонентов, список компонентов используемых в программе приведён в табл. 2.
Таблица 2 - Использованные компоненты RAD Studio
КомпонентыНазваниеTLabel, TEdit, TStringGridВывод текстовой информацииTChart, TImageВывод графической информацииTOpenDialog, TSaveDalog,, TColorDialogДиалоги с пользователемTMainMenu, TPopupMenuКомпоненты менюTComboBox, TCheckBox, TButton, TToolButtonОбеспечение пользовательского интерфейсаTTrackBar, TTimer, TToolBarДополнительноTOLEContainerСвязь с приложением
Использованные при разработке Win32 API функции:
ShellExecute - Запуск внешнего приложения, из разрабатываемого приложения;
GetCurrentDir() - Возвращает путь к текущей директории;
CreateOleObject("Excel.Application") - создание ole-сервера;
OlePropertyGet - возвращение значений из ole-приложений;.
Использованные при разработке функции для создания файлов настроек:
TIniFile - функция для работы с ini- файлами.
Использованные ActiveX компоненты:
WMP - компонент для работы с Windows Media Player. Windows Media Player. Бесплатная программа. Разработчик Microsoft.
AcroPDF - компонент для работы с PDF-файлам. AdobeReader XI. Бесплатная программа. Разработчик Adobe Systems. 2013
Использование OLE.
ИЕРАРХИЧЕСКАЯ СХЕМА РЕШЕНИЯ ЗАДАЧИ
Иерархическую схему решения задачи можно изобразить с помощью карты меню рис. 15.
Рисунок 15 - Карта меню
СПРАВОЧНАЯ СИСТЕМА
Справка в программе создана при помощи программы CHM Editor. CHM Editor - удобная программа для быстрого создания справочной документации. Пример исполнения изображён на рис. 16.
Рисунок 16 - Справочная система
УСТАНОВОЧНЫЙ CD
На установочном CD диске будет содержаться данная пояснительная записка, файл установки программы и папка проекта в архиве. Файл установки включает в себя все необходимые для работы программы компоненты и объекты ActiveX. Для создания инсталлятора была использована программа Smart Install Maker 5.04.
Smart Install Maker 5.04 представляет из себя лёгкую в обращении и доступную для любого уровня пользователя, программу рис. 17. Рисунок 17 - Инсталлятор Smart Install Maker 5.04
АНАЛИЗ РЕЗУЛЬТАТОВ МАШИННОГО ЭКСПЕРИМЕНТА
Для того чтобы проверить правильность работы программы в MS Excel, был проведен машинный эксперимент. В MS Excel были выведены графики экспериментальных данных и интерполированных данных. При нанесении экспериментальных точек получаются графики, изображенные на рисунках 18 и 19 Для примера возьмем зависимость расхода от давления и протестируем её в MS Excel и разработанной программе.
Рисунок 18 - График линейного метода построенного в MS Excel.
Рисунок 19 - График линейного метода построенного в программе.
ЗАКЛЮЧЕНИЕ
Основной целью данного курсового проектирования являлось создание приложения под операционную систему Windows, закрепление знаний о программном интерфейсе, предоставляемом ОС.
Программа разработана для операционной системы Microsoft Windows 7 на языке объектно-ориентированного программирования С++ в среде Embarcadero RAD Studio XE5 C++ Builder. Для работы программой требуется в системе права администратора т.к. необходимо зарегистрировать библиотеки и элементы ActiveX.
Список используемых приложений для создания данного проекта:
* Embarcadero RAD Studio XE5 C++ Builder
* Microsoft Word 2010
* Smart Install Maker 5.04
* CHM Editor
* Paint
СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ
1. ГОСТ 19.002 80 Единая система программной документации. Схемы алгоритмов и программ. Правила выполнения.
2. ГОСТ 19.301 79 Едина я система программной документации. Программа и методика испытаний. Требования к содержанию и оформлению.
3. ГОСТ 19.503 79 Единая система программной документации. Руководство системного программиста. Требования к содержанию и оформлению.
4. ГОСТ 19.506 79 Единая система программной документации. Описание языка. Требования к содержанию и оформлению.
5. Архангельский, А. C++ Builder: Справочное пособие. М.: БИНОМ, 2002. - 521 с.
6. Жадановская Н. Создание приложений для операционной, СПб.: СПБГТИ(ТУ), 2006. - 54 с. 7. Олифер, В.Г. Сетевые операционные системы, СПб: Питер, 2009. - 544 с.
8. ПРИЛОЖЕНИЕ А ОПИСАНИЕ КОМПАКТ ДИСКА
CD с программным продуктом записан с помощью утилиты Nero Burning ROM.
Диск содержит:
* Файл установки программы;
* Записку курсового проекта;
* Исходный код проекта в архиве;
ПРИЛОЖЕНИЕ Б РУКОВОДСТВО СИСТЕМНОГО ПРОГРАММИСТА
УТВЕРЖДЁН
А.В.00001-01 33 01-1-ЛУ
ЕДИНАЯ СИСТЕМА ЭЛЕКТРОННЫХ ВЫЧИСЛИТЕЛЬНЫХ МАШИН
ОПЕРАЦИОННАЯ СИСТЕМА
Мониторинг технологических процессов
Руководство системного администратора
А.В.00001-01 33 01-1
(Компакт-диск)
Листов 3
Подп. и датаИнв № дублВзам инв. №Подп и датаИнв.
№ подп. 2013
Общие сведения о программе
Данная программа предназначена для наглядного графического отображения технологических параметров или результатов одного эксперимента, выполненного при различных условиях. Системные требования
Минимальные системные требования:
- CPU 400 MHz
- 80 MB HDD Free Space
- DirectX 8.0
- 55 MB RAM
- 32 MB Video
Программные средства
- Windows XP Service Pack 1
- MS Office 2010
- Adobe Reader
Оборудование:
- Mouse
- Keyboard
Структура программы
Каждая форма - отдельный модуль. Взаимодействие между модулями осуществляется с помощью процедур обращения. Область видимости процедур и функций отдельного модуля - сам модуль. Настройки программы
Настройки языка программы хранятся в ini-файле.
Тестирование
Тестирование программы производилось на различных операционных системах семейства Windows. Критических сбоев обнаружено не было. При запуске программы без установки критических ошибок также не было обнаружено
Сообщение системному программисту
Файл с настройками options.ini храниться в папке с программой в подпаке Resourses. Пароли аккаунтов храниться в базе дынных, в папке Resourses под нахванием Acounts.mdb. При утсановке программа создает свою папку по указаной дирректории в установщике , в ней хранятся:
* Исполняемый файл программы
* Справка
* Файл с исходными данными * Видео технологического процесса
* База данных
ПРИЛОЖЕНИЕ В ЛИСТИНГ ПРОГРАММЫ
Модуль Unit1.cpp
#include <vcl.h>
#pragma hdrstop
#include "File1.h"
// ---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
TIniFile *Ini = new TIniFile("Resources/options.ini");
bool sumbol = false;
bool Admin, User, Operator = false;
// ---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) {
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::FormResize(TObject *Sender) {
StringGrid1->Height = Form1->ClientHeight;
StringGrid1->Width = Form1->Width;
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::ToolButton18Click(TObject *Sender) {
ClearStringGrid();
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::N47Click(TObject *Sender) {
ClearStringGrid();
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::N54Click(TObject *Sender) {
ClearStringGrid();
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::ToolButton2Click(TObject *Sender) {
if (OpenDialog1->Execute()) {
std::auto_ptr<TStringList>LL(new TStringList);
LL->Delimiter = '.';
LL->StrictDelimiter = true;
LL->LoadFromFile(OpenDialog1->FileName);
StringGrid1->RowCount = LL->Count;
StringGrid1->ColCount = SplitString(LL->Strings[0], "\t").Length;
for (int i = 0; i < LL->Count; i++) {
StringGrid1->Rows[i]->Delimiter = '\t';
StringGrid1->Rows[i]->StrictDelimiter = true;
StringGrid1->Rows[i]->DelimitedText = LL->Strings[i];
}
}
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::N3Click(TObject *Sender) {
OpenStringGrid();
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::ToolButton16Click(TObject *Sender) {
try {
Form2->Chart1->RemoveAllSeries();
for (int Col = 1; Col < StringGrid1->ColCount; Col++) {
TLineSeries *Series = new TLineSeries(Form2->Chart1);
Form2->Chart1->AddSeries(Series); {
for (int Row = 1; Row < StringGrid1->RowCount; Row++) {
Series->Title = StringGrid1->Cells[Col][0];
Series->AddXY(StringGrid1->Cells[0][Row].ToDouble(),
StringGrid1->Cells[Col][Row].ToDouble());
}
}
}
Form2->Position = poDesktopCenter;
Form2->ShowModal();
}
catch (...) {
ShowMessage("Не все ячейки координат заполнены");
}
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::N46Click(TObject *Sender) {
Form2->Chart1->RemoveAllSeries();
for (int Col = 1; Col < StringGrid1->ColCount; Col++) {
TLineSeries *Series = new TLineSeries(Form2->Chart1);
Series->Title = StringGrid1->Cells[Col][0];
Form2->Chart1->AddSeries(Series); {
for (int Row = 1; Row < StringGrid1->RowCount; Row++) {
Series->Title = StringGrid1->Cells[Col][0];
Series->AddXY(StringGrid1->Cells[0][Row].ToDouble(),
StringGrid1->Cells[Col][Row].ToDouble());
}
}
}
Form2->ShowModal();
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::StringGrid1FixedCellClick(TObject *Sender, int ACol,
int ARow)
{
Form1->StringGrid1->Cells[ACol][ARow] =
InputBox("Заголовок столбца", "Введите название",
Form1->StringGrid1->Cells[ACol][ARow]);
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::StringGrid1KeyPress(TObject *Sender,
System::WideChar &Key)
{
if (((Key < '0') || (Key > '9')) && (Key != VK_BACK) && (Key != ',') &&
(Key != '.')) {
Key = 0;
}
else if (Key == '.') {
if (sumbol == false) {
Key = ',';
sumbol = true;
}
else {
Key = 0;
}
}
else if (Key == ',') {
if (sumbol == false) {
Key = ',';
sumbol = true;
}
else {
Key = 0;
}
}
else if (Key == VK_BACK) {
sumbol = false;
}
else {
Key = 0;
}
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::N40Click(TObject *Sender) {
DeleteRowStringGrid();
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::N41Click(TObject *Sender) {
DeleteColStringFrid();
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::N17Click(TObject *Sender) {
DeleteRowStringGrid();
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::N18Click(TObject *Sender) {
DeleteColStringFrid();
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::ToolButton12Click(TObject *Sender) {
AddRightColStringGrid();
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::N49Click(TObject *Sender) {
AddRightColStringGrid();
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::N42Click(TObject *Sender) {
AddRightColStringGrid();
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::N44Click(TObject *Sender) {
AddDownRowStringGrid();
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::N51Click(TObject *Sender) {
AddDownRowStringGrid();
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::ToolButton14Click(TObject *Sender) {
AddDownRowStringGrid();
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::ToolButton11Click(TObject *Sender) {
AddLeftColStringGrid();
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::N48Click(TObject *Sender) {
AddLeftColStringGrid();
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::N38Click(TObject *Sender) {
AddLeftColStringGrid();
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::ToolButton13Click(TObject *Sender) {
AddUpRowStringGrid();
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::N50Click(TObject *Sender) {
AddUpRowStringGrid();
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::N43Click(TObject *Sender) {
AddUpRowStringGrid();
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::ToolButton8Click(TObject *Sender) {
StringGridToExel();
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::ToolButton9Click(TObject *Sender) {
StringGridToWord();
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::ToolButton3Click(TObject *Sender) {
SaveAsStringGrid();
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::ToolButton5Click(TObject *Sender) {
StringGridSaveFile();
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender) {
StatusBar1->Panels->Items[0]->Text = "Без логина";
StatusBar1->Panels->Items[1]->Text = "Гость";
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::N29Click(TObject *Sender) {
Form3->ShowModal();
Form3->Edit1->Text = "Логин";
Form3->Edit2->Text = "Пароль";
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::N30Click(TObject *Sender) {
Form4->ShowModal();
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::N24Click(TObject *Sender) {
Form8->PageControl1->ActivePageIndex = 3;
Form8->ShowModal();
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::StringGrid1GetEditText(TObject *Sender, int ACol,
int ARow, UnicodeString &Value) {
sumbol = false;
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::N27Click(TObject *Sender) {
N1->Caption = Ini->ReadString("Ru", "N1", N1->Caption);
N2->Caption = Ini->ReadString("Ru", "N2", N2->Caption);
N3->Caption = Ini->ReadString("Ru", "N3", N3->Caption);
N4->Caption = Ini->ReadString("Ru", "N4", N4->Caption);
N5->Caption = Ini->ReadString("Ru", "N5", N5->Caption);
N6->Caption = Ini->ReadString("Ru", "N6", N6->Caption);
N7->Caption = Ini->ReadString("Ru", "N7", N7->Caption);
N8->Caption = Ini->ReadString("Ru", "N8", N8->Caption);
N9->Caption = Ini->ReadString("Ru", "N9", N9->Caption);
N10->Caption = Ini->ReadString("Ru", "N10", N10->Caption);
N11->Caption = Ini->ReadString("Ru", "N11", N11->Caption);
N12->Caption = Ini->ReadString("Ru", "N12", N12->Caption);
N13->Caption = Ini->ReadString("Ru", "N13", N13->Caption);
N14->Caption = Ini->ReadString("Ru", "N14", N14->Caption);
N15->Caption = Ini->ReadString("Ru", "N15", N15->Caption);
N16->Caption = Ini->ReadString("Ru", "N16", N16->Caption);
N17->Caption = Ini->ReadString("Ru", "N17", N17->Caption);
N18->Caption = Ini->ReadString("Ru", "N18", N18->Caption);
N19->Caption = Ini->ReadString("Ru", "N19", N19->Caption);
N20->Caption = Ini->ReadString("Ru", "N20", N20->Caption);
N21->Caption = Ini->ReadString("Ru", "N21", N21->Caption);
N22->Caption = Ini->ReadString("Ru", "N22", N22->Caption);
N23->Caption = Ini->ReadString("Ru", "N23", N23->Caption);
N24->Caption = Ini->ReadString("Ru", "N24", N24->Caption);
N25->Caption = Ini->ReadString("Ru", "N25", N25->Caption);
N26->Caption = Ini->ReadString("Ru", "N26", N26->Caption);
N27->Caption = Ini->ReadString("Ru", "N27", N27->Caption);
N28->Caption = Ini->ReadString("Ru", "N28", N28->Caption);
N29->Caption = Ini->ReadString("Ru", "N29", N29->Caption);
N30->Caption = Ini->ReadString("Ru", "N30", N30->Caption);
N31->Caption = Ini->ReadString("Ru", "N31", N31->Caption);
N32->Caption = Ini->ReadString("Ru", "N32", N32->Caption);
N33->Caption = Ini->ReadString("Ru", "N33", N33->Caption);
N34->Caption = Ini->ReadString("Ru", "N34", N34->Caption);
N35->Caption = Ini->ReadString("Ru", "N35", N35->Caption);
N36->Caption = Ini->ReadString("Ru", "N36", N36->Caption);
N37->Caption = Ini->ReadString("Ru", "N37", N37->Caption);
N38->Caption = Ini->ReadString("Ru", "N38", N38->Caption);
N39->Caption = Ini->ReadString("Ru", "N39", N39->Caption);
N40->Caption = Ini->ReadString("Ru", "N40", N40->Caption);
N41->Caption = Ini->ReadString("Ru", "N41", N41->Caption);
N42->Caption = Ini->ReadString("Ru", "N42", N42->Caption);
N43->Caption = Ini->ReadString("Ru", "N43", N43->Caption);
N44->Caption = Ini->ReadString("Ru", "N44", N44->Caption);
N45->Caption = Ini->ReadString("Ru", "N45", N45->Caption);
N46->Caption = Ini->ReadString("Ru", "N46", N46->Caption);
N47->Caption = Ini->ReadString("Ru", "N47", N47->Caption);
N48->Caption = Ini->ReadString("Ru", "N48", N48->Caption);
N49->Caption = Ini->ReadString("Ru", "N49", N49->Caption);
N50->Caption = Ini->ReadString("Ru", "N50", N50->Caption);
N51->Caption = Ini->ReadString("Ru", "N51", N51->Caption);
N52->Caption = Ini->ReadString("Ru", "N52", N52->Caption);
N53->Caption = Ini->ReadString("Ru", "N53", N53->Caption);
Form2->N1->Caption = Ini->ReadString("Ru", "Form2N1", Form2->N1->Caption);
Form2->N2->Caption = Ini->ReadString("Ru", "Form2N2", Form2->N2->Caption);
Form2->N4->Caption = Ini->ReadString("Ru", "Form2N4", Form2->N4->Caption);
Form3->Button1->Caption = Ini->ReadString("Ru", "Form3Button1",Form3->Button1->Caption);
Form3->Button2->Caption = Ini->ReadString("Ru", "Form3Button2",Form3->Button2->Caption);
Form4->Button1->Caption = Ini->ReadString("Ru", "Form4Button1",
Form4->Button1->Caption);
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::English1Click(TObject *Sender) {
N1->Caption = Ini->ReadString("Eng", "N1", N1->Caption);
N2->Caption = Ini->ReadString("Eng", "N2", N2->Caption);
N3->Caption = Ini->ReadString("Eng", "N3", N3->Caption);
N4->Caption = Ini->ReadString("Eng", "N4", N4->Caption);
N5->Caption = Ini->ReadString("Eng", "N5", N5->Caption);
N6->Caption = Ini->ReadString("Eng", "N6", N6->Caption);
N7->Caption = Ini->ReadString("Eng", "N7", N7->Caption);
N8->Caption = Ini->ReadString("Eng", "N8", N8->Caption);
N9->Caption = Ini->ReadString("Eng", "N9", N9->Caption);
N10->Caption = Ini->ReadString("Eng", "N10", N10->Caption);
N11->Caption = Ini->ReadString("Eng", "N11", N11->Caption);
N12->Caption = Ini->ReadString("Eng", "N12", N12->Caption);
N13->Caption = Ini->ReadString("Eng", "N13", N13->Caption);
N14->Caption = Ini->ReadString("Eng", "N14", N14->Caption);
N15->Caption = Ini->ReadString("Eng", "N15", N15->Caption);
N16->Caption = Ini->ReadString("Eng", "N16", N16->Caption);
N17->Caption = Ini->ReadString("Eng", "N17", N17->Caption);
N18->Caption = Ini->ReadString("Eng", "N18", N18->Caption);
N19->Caption = Ini->ReadString("Eng", "N19", N19->Caption);
N20->Caption = Ini->ReadString("Eng", "N20", N20->Caption);
N21->Caption = Ini->ReadString("Eng", "N21", N21->Caption);
N22->Caption = Ini->ReadString("Eng", "N22", N22->Caption);
N23->Caption = Ini->ReadString("Eng", "N23", N23->Caption);
N24->Caption = Ini->ReadString("Eng", "N24", N24->Caption);
N25->Caption = Ini->ReadString("Eng", "N25", N25->Caption);
N26->Caption = Ini->ReadString("Eng", "N26", N26->Caption);
N27->Caption = Ini->ReadString("Eng", "N27", N27->Caption);
N28->Caption = Ini->ReadString("Eng", "N28", N28->Caption);
N29->Caption = Ini->ReadString("Eng", "N29", N29->Caption);
N30->Caption = Ini->ReadString("Eng", "N30", N30->Caption);
N31->Caption = Ini->ReadString("Eng", "N31", N31->Caption);
N32->Caption = Ini->ReadString("Eng", "N32", N32->Caption);
N33->Caption = Ini->ReadString("Eng", "N33", N33->Caption);
N34->Caption = Ini->ReadString("Eng", "N34", N34->Caption);
N35->Caption = Ini->ReadString("Eng", "N35", N35->Caption);
N36->Caption = Ini->ReadString("Eng", "N36", N36->Caption);
N37->Caption = Ini->ReadString("Eng", "N37", N37->Caption);
N38->Caption = Ini->ReadString("Eng", "N38", N38->Caption);
N39->Caption = Ini->ReadString("Eng", "N39", N39->Caption);
N40->Caption = Ini->ReadString("Eng", "N40", N40->Caption);
N41->Caption = Ini->ReadString("Eng", "N41", N41->Caption);
N42->Caption = Ini->ReadString("Eng", "N42", N42->Caption);
N43->Caption = Ini->ReadString("Eng", "N43", N43->Caption);
N44->Caption = Ini->ReadString("Eng", "N44", N44->Caption);
N45->Caption = Ini->ReadString("Eng", "N45", N45->Caption);
N46->Caption = Ini->ReadString("Eng", "N46", N46->Caption);
N47->Caption = Ini->ReadString("Eng", "N47", N47->Caption);
N48->Caption = Ini->ReadString("Eng", "N48", N48->Caption);
N49->Caption = Ini->ReadString("Eng", "N49", N49->Caption);
N50->Caption = Ini->ReadString("Eng", "N50", N50->Caption);
N51->Caption = Ini->ReadString("Eng", "N51", N51->Caption);
N52->Caption = Ini->ReadString("Eng", "N52", N52->Caption);
N53->Caption = Ini->ReadString("Eng", "N53", N53->Caption);
Form2->N1->Caption = Ini->ReadString("Eng", "Form2N1", Form2->N1->Caption);
Form2->N2->Caption = Ini->ReadString("Eng", "Form2N2", Form2->N2->Caption);
Form2->N4->Caption = Ini->ReadString("Eng", "Form2N4", Form2->N4->Caption);
Form3->Button1->Caption = Ini->ReadString("Eng", "Form3Button1",Form3->Button1->Caption);
Form3->Button2->Caption = Ini->ReadString("Eng", "Form3Button2",Form3->Button2->Caption);
Form4->Button1->Caption = Ini->ReadString("Eng", "Form4Button1",
Form4->Button1->Caption);
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::ToolButton20Click(TObject *Sender) {
try {
Form2->Chart1->RemoveAllSeries();
for (int Col = 1; Col < StringGrid1->ColCount; Col++) {
TLineSeries *Series = new TLineSeries(Form2->Chart1);
Series->Stairs = true;
Series->Title = StringGrid1->Cells[Col][0];
Form2->Chart1->AddSeries(Series); {
for (int Row = 1; Row < StringGrid1->RowCount; Row++) {
Series->Title = StringGrid1->Cells[Col][0];
Series->AddXY(StringGrid1->Cells[0][Row].ToDouble(),
StringGrid1->Cells[Col][Row].ToDouble());
}
}
}
Form2->Position = poDesktopCenter;
Form2->ShowModal();
}catch (...) {
ShowMessage("Не все ячейки координат заполнены");
}
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::ToolButton7Click(TObject *Sender) {
Form6->ShowModal();
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::ToolButton22Click(TObject *Sender) {
Form7->ShowModal();
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::N36Click(TObject *Sender) {
ShellExecute(0, L"open", L"Resources\\About.chm", NULL, NULL, SW_NORMAL);
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::ToolButton25Click(TObject *Sender) {
ShellExecute(Handle, L"open", L"Calc", NULL, NULL, SW_RESTORE);
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::ToolButton21Click(TObject *Sender) {
Close();
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::N56Click(TObject *Sender) {
ShellExecute(Handle, L"open", L"Calc", NULL, NULL, SW_RESTORE);
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::AdobeReader1Click(TObject *Sender) {
Form6->Position = poDesktopCenter;
Form6->ShowModal();
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::WMPlayer1Click(TObject *Sender) {
Form7->Position = poDesktopCenter;
Form7->ShowModal();
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::N21Click(TObject *Sender) {
Form8->PageControl1->ActivePageIndex = 1;
Form8->ShowModal();
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::N32Click(TObject *Sender) {
Form8->Name->Caption = "";
Form8->MiddleName->Caption = "";
Form8->LastName->Caption = "";
Form8->Status->Caption = "";
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
Form9->Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N22Click(TObject *Sender)
{
Form8->PageControl1->ActivePageIndex = 2;
Form8->ShowModal();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N20Click(TObject *Sender)
{
Form8->PageControl1->ActivePageIndex = 0;
Form8->ShowModal();
}
//---------------------------------------------------------------------------
Модуль Unit1.h
// ---------------------------------------------------------------------------
#ifndef Unit1H
#define Unit1H
// ---------------------------------------------------------------------------
#include <System.Classes.hpp>
#include <Vcl.Controls.hpp>
#include <Vcl.StdCtrls.hpp>
#include <Vcl.Forms.hpp>
#include <Vcl.ComCtrls.hpp>
#include <Vcl.ImgList.hpp>
#include <Vcl.Menus.hpp>
#include <Vcl.ToolWin.hpp>
#include <Vcl.Grids.hpp>
#include <System.Actions.hpp>
#include <Vcl.ActnList.hpp>
#include <Vcl.ActnMan.hpp>
#include <Vcl.PlatformDefaultStyleActnCtrls.hpp>
#include <Vcl.Dialogs.hpp>
#include <Vcl.StdActns.hpp>
// ---------------------------------------------------------------------------
class TForm1 : public TForm {
__published: // IDE-managed Components
void __fastcall FormResize(TObject *Sender);
void __fastcall ToolButton18Click(TObject *Sender);
void __fastcall N47Click(TObject *Sender);
void __fastcall N54Click(TObject *Sender);
void __fastcall ToolButton2Click(TObject *Sender);
void __fastcall N3Click(TObject *Sender);
void __fastcall ToolButton16Click(TObject *Sender);
void __fastcall N46Click(TObject *Sender);
void __fastcall StringGrid1FixedCellClick(TObject *Sender, int ACol,
int ARow);
void __fastcall StringGrid1KeyPress(TObject *Sender, System::WideChar &Key);
void __fastcall N40Click(TObject *Sender);
void __fastcall N41Click(TObject *Sender);
void __fastcall N17Click(TObject *Sender);
void __fastcall N18Click(TObject *Sender);
void __fastcall ToolButton12Click(TObject *Sender);
void __fastcall N49Click(TObject *Sender);
void __fastcall N42Click(TObject *Sender);
void __fastcall N44Click(TObject *Sender);
void __fastcall N51Click(TObject *Sender);
void __fastcall ToolButton14Click(TObject *Sender);
void __fastcall ToolButton11Click(TObject *Sender);
void __fastcall N48Click(TObject *Sender);
void __fastcall N38Click(TObject *Sender);
void __fastcall ToolButton13Click(TObject *Sender);
void __fastcall N50Click(TObject *Sender);
void __fastcall N43Click(TObject *Sender);
void __fastcall ToolButton8Click(TObject *Sender);
void __fastcall ToolButton9Click(TObject *Sender);
void __fastcall ToolButton3Click(TObject *Sender);
void __fastcall ToolButton5Click(TObject *Sender);
void __fastcall FormCreate(TObject *Sender);
void __fastcall N29Click(TObject *Sender);
void __fastcall N30Click(TObject *Sender);
void __fastcall N24Click(TObject *Sender);
void __fastcall StringGrid1GetEditText(TObject *Sender, int ACol, int ARow,
UnicodeString &Value);
void __fastcall N27Click(TObject *Sender);
void __fastcall English1Click(TObject *Sender);
void __fastcall ToolButton20Click(TObject *Sender);
void __fastcall ToolButton7Click(TObject *Sender);
void __fastcall ToolButton22Click(TObject *Sender);
void __fastcall N36Click(TObject *Sender);
void __fastcall ToolButton25Click(TObject *Sender);
void __fastcall ToolButton21Click(TObject *Sender);
void __fastcall N56Click(TObject *Sender);
void __fastcall AdobeReader1Click(TObject *Sender);
void __fastcall WMPlayer1Click(TObject *Sender);
void __fastcall N21Click(TObject *Sender);
void __fastcall N32Click(TObject *Sender);
void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
void __fastcall N22Click(TObject *Sender);
void __fastcall N20Click(TObject *Sender);
private:
// ---------------------------------------------------------------------------
void ClearStringGrid() {
int n = StringGrid1->ColCount;
for (int i = 0; i < n; i++) {
StringGrid1->Cols[i]->Clear();
}
}
// ---------------------------------------------------------------------------
void OpenStringGrid() {
try {
if (OpenDialog1->Execute()) {
TStringList *LL = new TStringList;
LL->LoadFromFile(OpenDialog1->FileName);
int n = LL->Count;
StringGrid1->RowCount = n + 1;
StringGrid1->ColCount = 2;
LL->NameValueSeparator = ' ';
ClearStringGrid();
for (int i = 1; i < n + 1; i++) {
StringGrid1->Cells[0][i] = LL->Names[i - 1].ToDouble();
StringGrid1->Cells[1][i] =
LL->ValueFromIndex[i - 1].ToDouble();
}
delete LL;
}
}
catch (...) {
ShowMessage("Ошибка при загрузке данных");
}
}
// ---------------------------------------------------------------------------
void DeleteColStringFrid() {
int Col = StringGrid1->Col;
int RowCount = StringGrid1->RowCount;
int ColCount = StringGrid1->ColCount;
for (int i = 0; i < RowCount; i++) {
StringGrid1->Cells[Col][i] = "";
for (int ii = 0; ii < ColCount; ii++) {
StringGrid1->Cells[Col + ii][i] =
StringGrid1->Cells[Col + ii + 1][i];
}
}
StringGrid1->ColCount = ColCount - 1;
}
// ---------------------------------------------------------------------------
void DeleteRowStringGrid() {
int Row = StringGrid1->Row;
int RowCount = StringGrid1->RowCount;
int ColCount = StringGrid1->ColCount;
for (int i = 0; i < ColCount; i++) {
StringGrid1->Cells[i][Row] = "";
StringGrid1->Cells[i][Row] = StringGrid1->Cells[i][Row + 1];
}
StringGrid1->RowCount = RowCount - 1;
}
// ---------------------------------------------------------------------------
void AddRightColStringGrid() {
StringGrid1->ColCount = StringGrid1->ColCount + 1;
}
// ---------------------------------------------------------------------------
void AddDownRowStringGrid() {
StringGrid1->RowCount = StringGrid1->RowCount + 1;
}
// ---------------------------------------------------------------------------
void AddLeftColStringGrid() {
int RowCount = StringGrid1->RowCount;
int ColCount = StringGrid1->ColCount;
StringGrid1->ColCount = StringGrid1->ColCount + 1;
for (int i = ColCount; i > 0; i--) {
StringGrid1->Cols[i]->Text = StringGrid1->Cols[i - 1]->Text;
}
StringGrid1->Cols[0]->Text = "";
}
// ---------------------------------------------------------------------------
void AddUpRowStringGrid() {
int RowCount = StringGrid1->RowCount;
int ColCount = StringGrid1->ColCount;
StringGrid1->RowCount = StringGrid1->RowCount + 1;
for (int i = RowCount; i > 0; i--) {
StringGrid1->Rows[i]->Text = StringGrid1->Rows[i - 1]->Text;
}
}
// ---------------------------------------------------------------------------
void StringGridToExel() {
WideString str;
TStringList *Cord = new TStringList;
for (int i = 0; i < StringGrid1->RowCount; ++i) {
for (int j = 0; j < StringGrid1->ColCount; ++j)
str += StringGrid1->Cells[j][i] + "\t";
Cord->Add(Trim(str));
str = "\n\r";
}
if (SaveDialog2->Execute())
Cord->SaveToFile(SaveDialog2->FileName + ".xls");
delete Cord;
}
// ---------------------------------------------------------------------------
void StringGridToWord() {
WideString str;
TStringList *Cord = new TStringList;
for (int i = 0; i < StringGrid1->RowCount; ++i) {
for (int j = 0; j < StringGrid1->ColCount; ++j)
str += StringGrid1->Cells[j][i] + "\t";
Cord->Add(Trim(str));
str = "\n\r";
}
if (SaveDialog3->Execute())
Cord->SaveToFile(SaveDialog3->FileName + ".doc");
delete Cord;
}
// ---------------------------------------------------------------------------
void SaveStringGrid() {
String Dir = ExtractFileDir(OpenDialog1->FileName);
String Name = ExtractFileName(OpenDialog1->FileName); {
if (Dir == "" || Name == "")
{
SaveAsStringGrid();
}
else {
TStringList *list = new TStringList;
for (int i = 1; i < StringGrid1->RowCount; i++) {
String b, c;
b = StringGrid1->Cells[0][i];
c = StringGrid1->Cells[1][i];
list->Add(b + " " + c);
list->SaveToFile(Dir + "/" + Name);
}
delete list;
}
}
}
// ---------------------------------------------------------------------------
void SaveAsStringGrid() {
WideString str;
TStringList *Cord = new TStringList;
for (int i = 0; i < StringGrid1->RowCount; ++i) {
for (int j = 0; j < StringGrid1->ColCount; ++j)
str += StringGrid1->Cells[j][i] + "\t";
Cord->Add(Trim(str));
str = "\n\r";
}
if (SaveDialog1->Execute())
if (SaveDialog1->FilterIndex == 1) {
Cord->SaveToFile(SaveDialog1->FileName + ".txt");
}
else if (SaveDialog1->FilterIndex == 2) {
Cord->SaveToFile(SaveDialog1->FileName + ".xls");
}
else if (SaveDialog1->FilterIndex == 3) {
Cord->SaveToFile(SaveDialog1->FileName + ".doc");
}
else {
Cord->SaveToFile(SaveDialog1->FileName);
}
delete Cord;
}
// ---------------------------------------------------------------------------
void StringGridLoadFile() {
//
}
void StringGridSaveFile() {
if (SaveDialog1->Execute()) {
TStringList *SL = new TStringList;
for (int i = 0; i < StringGrid1->RowCount; i++) {
StringGrid1->Rows[i]->Delimiter = ' ';
SL->Add(StringGrid1->Rows[i]->DelimitedText);
}
SL->SaveToFile(SaveDialog1->FileName);
delete SL;
}
}
public: // User declarations
__fastcall TForm1(TComponent* Owner);
};
// ---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
// ---------------------------------------------------------------------------
#endif
Модуль Unit2.cpp
// ---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "File1.h"
// ---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2 *Form2;
// ---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner) : TForm(Owner) {
}
// ---------------------------------------------------------------------------
void __fastcall TForm2::Chart1ClickAxis(TCustomChart *Sender, TChartAxis *Axis,
TMouseButton Button, TShiftState Shift, int X, int Y) {
Axis->Title->Caption = InputBox("Подпись абсцисс", "Введите название",
Axis->Title->Caption);
}
// ---------------------------------------------------------------------------
void __fastcall TForm2::Chart1ClickTitle(TCustomChart *Sender,
TChartTitle *ATitle, TMouseButton Button, TShiftState Shift, int X, int Y) {
ATitle->Caption = InputBox("Заголовок таблицы", "Введите название",
ATitle->Caption);
}
// ---------------------------------------------------------------------------
void __fastcall TForm2::Chart1MouseMove(TObject *Sender, TShiftState Shift,
int X, int Y) {
Label1->Parent = Chart1;
double x;
double y;
Chart1->Series[0]->GetCursorValues(x, y);
if (Chart1->BottomAxis->Title->Caption == "" &&
Chart1->LeftAxis->Title->Caption == "") {
Label1->Caption = "Координаты точки: X=" + String(x) + " Y=" +
String(y);
}
else {
String NameX, NameY;
NameX = Chart1->BottomAxis->Title->Text;
NameY = Chart1->LeftAxis->Title->Text;
Label1->Caption = "Координаты точки: " + NameX + "=" + String(x) +
" " + NameY + "=" + String(y);
}
}
// ---------------------------------------------------------------------------
void __fastcall TForm2::Chart1ClickSeries(TCustomChart *Sender,
TChartSeries *Series, int ValueIndex, TMouseButton Button,
TShiftState Shift, int X, int Y) {
String Text = "Вы хотите удалить " + Series->Title + "?";
String Title = "Удаление";
if (Application->MessageBox(Text.c_str(), Title.c_str(),
MB_YESNO + MB_ICONQUESTION) == IDYES) {
Series->Clear();
}
else {
return;
}
}
// ---------------------------------------------------------------------------
void __fastcall TForm2::Chart1ClickLegend(TCustomChart *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y) {
Chart1->Legend->Title->Caption =
InputBox("Подпись для графиков", "Введите название",
Chart1->Legend->Title->Caption);
}
// ---------------------------------------------------------------------------
void __fastcall TForm2::N8Click(TObject *Sender) {
Chart1->RemoveAllSeries();
for (int Col = 1; Col < Form1->StringGrid1->ColCount; Col++) {
TLineSeries *Series = new TLineSeries(Form2->Chart1);
Form2->Chart1->AddSeries(Series); {
for (int Row = 1; Row < Form1->StringGrid1->RowCount; Row++) {
Series->Title = Form1->StringGrid1->Cells[Col][0];
Series->AddXY(Form1->StringGrid1->Cells[0][Row].ToDouble(),
Form1->StringGrid1->Cells[Col][Row].ToDouble());
}
}
}
}
// ---------------------------------------------------------------------------
void __fastcall TForm2::N9Click(TObject *Sender) {
Chart1->RemoveAllSeries();
for (int Col = 1; Col < Form1->StringGrid1->ColCount; Col++) {
TLineSeries *Series = new TLineSeries(Form2->Chart1);
Series->Stairs = true;
Form2->Chart1->AddSeries(Series); {
for (int Row = 1; Row < Form1->StringGrid1->RowCount; Row++) {
Series->Title = Form1->StringGrid1->Cells[Col][0];
Series->AddXY(Form1->StringGrid1->Cells[0][Row].ToDouble(),
Form1->StringGrid1->Cells[Col][Row].ToDouble());
}
}
}
}
// ---------------------------------------------------------------------------
void __fastcall TForm2::N11Click(TObject *Sender) {
Chart1->RemoveAllSeries();
for (int Col = 1; Col < Form1->StringGrid1->ColCount; Col++) {
TLineSeries *Series = new TLineSeries(Form2->Chart1);
Form2->Chart1->AddSeries(Series); {
for (int Row = 1; Row < Form1->StringGrid1->RowCount; Row++) {
Series->Title = Form1->StringGrid1->Cells[Col][0];
Series->AddXY(Form1->StringGrid1->Cells[0][Row].ToDouble(),
Form1->StringGrid1->Cells[Col][Row].ToDouble());
}
}
}
for (int Col = 1; Col < Form1->StringGrid1->ColCount; Col++) {
TLineSeries *Series = new TLineSeries(Form2->Chart1);
Series->Stairs = true;
Form2->Chart1->AddSeries(Series); {
for (int Row = 1; Row < Form1->StringGrid1->RowCount; Row++) {
Series->Title = Form1->StringGrid1->Cells[Col][0];
Series->AddXY(Form1->StringGrid1->Cells[0][Row].ToDouble(),
Form1->StringGrid1->Cells[Col][Row].ToDouble());
}
}
}
}
// ---------------------------------------------------------------------------
void __fastcall TForm2::N1Click(TObject *Sender)
{
Form8->PageControl1->ActivePageIndex = 1;
Form8->ShowModal();
}
//---------------------------------------------------------------------------
void __fastcall TForm2::N4Click(TObject *Sender)
{
Chart1->RemoveAllSeries();
}
//---------------------------------------------------------------------------
Модуль Unit3.cpp
// ---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "File1.h"
// ---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm3 *Form3;
extern Admin, User, Operator;
String password;
// ---------------------------------------------------------------------------
__fastcall TForm3::TForm3(TComponent* Owner) : TForm(Owner) {
}
// ---------------------------------------------------------------------------
void __fastcall TForm3::Button1Click(TObject *Sender) {
String CurLog, Text, FirstName, LastName, Status, CurPass, Tittle,
MiddleName;
Text = "Вы успешно вошли как. ";
AnsiString DBLog, DBPassword;
CurLog = Edit1->Text;
CurPass = Edit2->Text; {
while (!(Form4->ADOTable1->Eof)) {
DBLog = Form4->ADOTable1->FieldByName("Login")->AsString;
DBPassword = Form4->ADOTable1->FieldByName("Password")->AsString;
if ((CurLog == DBLog) && (CurPass == DBPassword)) {
FirstName = Form4->ADOTable1->FieldByName("FirstName")
->AsString;
LastName = Form4->ADOTable1->FieldByName("LastName")->AsString;
Status = Form4->ADOTable1->FieldByName("Status")->AsString;
MiddleName = Form4->ADOTable1->FieldByName("LastName")
->AsString;
ShowMessage(Text + FirstName + " " + LastName + ". " + Status);
if (Status == "Администратор") {
Admin = true;
Form1->StatusBar1->Panels->Items[1]->Text = Status;
Form1->StatusBar1->Panels->Items[0]->Text =
FirstName + " " + LastName;
}
else if (Status == "Пользователь") {
User = true;
Form1->StatusBar1->Panels->Items[1]->Text = Status;
Form1->StatusBar1->Panels->Items[0]->Text =
FirstName + " " + LastName;
}
else if (Status == "Оператор") {
Operator = true;
Form1->StatusBar1->Panels->Items[1]->Text = Status;
Form1->StatusBar1->Panels->Items[0]->Text =
FirstName + " " + LastName;
}
password = Form4->ADOTable1->FieldByName("Password")->AsString;
Form8->Name->Caption = FirstName;
Form8->MiddleName->Caption = MiddleName;
Form8->LastName->Caption = LastName;
Form8->Status->Caption = Status;
Close();
return;
}
Form4->ADOTable1->Next();
Application->ProcessMessages();
}
ShowMessage("Неправильно введён логин или пароль");
}
}
// ---------------------------------------------------------------------------
void __fastcall TForm3::Edit1Click(TObject *Sender) {
if (Edit1->Text == "Логин") {
Edit1->Clear();
}
}
// ---------------------------------------------------------------------------
void __fastcall TForm3::Edit2Click(TObject *Sender) {
if (Edit2->Text == "Пароль") {
Edit2->Clear();
}
}
// ---------------------------------------------------------------------------
void __fastcall TForm3::Button2Click(TObject *Sender) {
Form4->ShowModal();
Close();
}
// ---------------------------------------------------------------------------
void __fastcall TForm3::Edit1KeyPress(TObject *Sender, System::WideChar &Key) {
if (Key == VK_RETURN) {
Form3->Button1->Click();
}
}
// ---------------------------------------------------------------------------
void __fastcall TForm3::Edit2KeyPress(TObject *Sender, System::WideChar &Key) {
if (Key == VK_RETURN) {
Form3->Button1->Click();
}
}
// ---------------------------------------------------------------------------
Модуль Unit4.cpp
// ---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "File1.h"
// ---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm4 *Form4;
// ---------------------------------------------------------------------------
__fastcall TForm4::TForm4(TComponent* Owner) : TForm(Owner) {
}
// ---------------------------------------------------------------------------
void __fastcall TForm4::LoginClick(TObject *Sender) {
if (Login->Text == "Логин") {
Login->Clear();
}
}
// ---------------------------------------------------------------------------
void __fastcall TForm4::PasswordClick(TObject *Sender) {
if (Password->Text == "Пароль") {
Password->Clear();
}
}
// ---------------------------------------------------------------------------
void __fastcall TForm4::EMAILClick(TObject *Sender) {
if (EMAIL->Text == "Почта") {
EMAIL->Clear();
}
}
// ---------------------------------------------------------------------------
void __fastcall TForm4::Button1Click(TObject *Sender) {
Registration();
}
// ---------------------------------------------------------------------------
void __fastcall TForm4::FormCreate(TObject *Sender) {
AnsiString CurDir;
CurDir = GetCurrentDir();
Form4->ADOConnection1->ConnectionString =
"Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=" + CurDir +
"\\Resources\\Accounts.mdb";
// Mode=Share Deny None;Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create Syst";
Form4->ADOTable1->ConnectionString =
"Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=" + CurDir +
"\\Resources\\Accounts.mdb";
// Mode=Share Deny None;Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create Syst";
Form4->ADOTable1->TableName = "Users";
Form4->ADOTable1->Active = 1;
Form4->ADOConnection1->Connected = 1;
}
// ---------------------------------------------------------------------------
void __fastcall TForm4::NameClick(TObject *Sender) {
if (Name->Text == "Имя") {
Name->Clear();
}
}
// ---------------------------------------------------------------------------
void __fastcall TForm4::LastNameClick(TObject *Sender) {
if (LastName->Text == "Фамилия") {
LastName->Clear();
}
}
// ---------------------------------------------------------------------------
void __fastcall TForm4::MiddleNameClick(TObject *Sender) {
if (MiddleName->Text == "Отчество") {
MiddleName->Clear();
}
}
// ---------------------------------------------------------------------------
Модуль Unit4.h
// ---------------------------------------------------------------------------
#ifndef Unit4H
#define Unit4H
// ---------------------------------------------------------------------------
#include <System.Classes.hpp>
#include <Vcl.Controls.hpp>
#include <Vcl.StdCtrls.hpp>
#include <Vcl.Forms.hpp>
#include <Data.DB.hpp>
#include <Data.Win.ADODB.hpp>
#include <Vcl.Dialogs.hpp>
#include <Vcl.ExtCtrls.hpp>
#include <Vcl.ExtDlgs.hpp>
// ---------------------------------------------------------------------------
class TForm4 : public TForm {
__published: // IDE-managed Components
TEdit *Login;
TLabel *Label1;
TLabel *Label2;
TLabel *Label3;
TLabel *Label5;
TLabel *Label6;
TLabel *Label7;
TLabel *Label4;
TEdit *Password;
TEdit *Name;
TEdit *LastName;
TEdit *MiddleName;
TEdit *EMAIL;
TComboBox *Status;
TADOConnection *ADOConnection1;
TADOTable *ADOTable1;
TDataSource *DataSource1;
TButton *Button1;
void __fastcall LoginClick(TObject *Sender);
void __fastcall PasswordClick(TObject *Sender);
void __fastcall EMAILClick(TObject *Sender);
void __fastcall Button1Click(TObject *Sender);
void __fastcall FormCreate(TObject *Sender);
void __fastcall NameClick(TObject *Sender);
void __fastcall LastNameClick(TObject *Sender);
void __fastcall MiddleNameClick(TObject *Sender);
private:
void Registration() {
String L, P, FN, MN, LN, E;
Login->Color = clWhite;
Password->Color = clWhite;
Name->Color = clWhite;
MiddleName->Color = clWhite;
LastName->Color = clWhite;
EMAIL->Color = clWhite;
Status->Color = clWhite;
L = Login->Text;
P = Password->Text;
FN = Name->Text;
MN = MiddleName->Text;
LN = LastName->Text;
E = EMAIL->Text;
if (L == "" || L == "Логин") {
Login->Color = clRed;
ShowMessage("Заполните форму логина");
}
else if (LN == "" || LN == "Фамилия") {
LastName->Color = clRed;
ShowMessage("Заполните форму фамилии");
}
else if (FN == "" || FN == "Имя") {
Name->Color = clRed;
ShowMessage("Заполните форму имени");
}
else if (MN == "" || MN == "Отчество") {
MiddleName->Color = clRed;
ShowMessage("Заполните форму отчества");
}
else if (P == "" || P == "Пароль") {
Password->Color = clRed;
ShowMessage("Заполните форму пароля");
}
else if (E == "" || E == "Почта") {
EMAIL->Color = clRed;
ShowMessage("Заполните форму Email");
}
else if (Status->Text == "Выберите статус...") {
Status->Color = clRed;
ShowMessage("Выберите статус");
}
else {
AnsiString CurLog = Login->Text;
AnsiString DBLog;
ADOTable1->First();
while (!ADOTable1->Eof) {
DBLog = ADOTable1->FieldByName("Login")->AsString;
if (CurLog == DBLog) {
ShowMessage("Такой логин уже используется");
Login->Clear();
return;
}
ADOTable1->Next();
Application->ProcessMessages();
}
ADOTable1->First();
ADOTable1->Insert();
/*
TMemoryStream* strm = new TMemoryStream();
Photo->Picture->Graphic->SaveToStream(strm);
((TGraphicField*)ADOTable1->FieldByName("Photo"))
->LoadFromStream(strm);
*/
ADOTable1->FieldByName("Login")->AsString = Login->Text;
ADOTable1->FieldByName("FirstName")->AsString = Name->Text;
ADOTable1->FieldByName("MiddleName")->AsString = MiddleName->Text;
ADOTable1->FieldByName("LastName")->AsString = LastName->Text;
ADOTable1->FieldByName("Password")->AsString = Password->Text;
ADOTable1->FieldByName("EMAIL")->AsString = EMAIL->Text;
ADOTable1->FieldByName("Status")->AsString = Status->Text;
// delete strm;
ADOTable1->Post();
ShowMessage("Вы успешно зарегистрировались");
Close();
}
}
public: // User declarations
__fastcall TForm4(TComponent* Owner);
};
// ---------------------------------------------------------------------------
extern PACKAGE TForm4 *Form4;
// ---------------------------------------------------------------------------
#endif
Модуль Unit8.h
// ---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "File1.h"
// ---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm8 *Form8;
extern password;
// ---------------------------------------------------------------------------
__fastcall TForm8::TForm8(TComponent* Owner) : TForm(Owner) {
}
// ---------------------------------------------------------------------------
void __fastcall TForm8::Panel2Click(TObject *Sender) {
if (ColorDialog1->Execute()) {
Panel2->Color = ColorDialog1->Color;
Form2->Chart1->Gradient->StartColor = ColorDialog1->Color;
}
}
// ---------------------------------------------------------------------------
void __fastcall TForm8::Panel3Click(TObject *Sender) {
if (ColorDialog1->Execute()) {
Panel3->Color = ColorDialog1->Color;
Form2->Chart1->Gradient->EndColor = ColorDialog1->Color;
}
}
// ---------------------------------------------------------------------------
void __fastcall TForm8::CheckBox2Click(TObject *Sender) {
if (CheckBox2->Checked == true) {
Panel1->Enabled = true;
Form2->Chart1->Gradient->Visible = true;
Panel4->Enabled = false;
}
else {
Panel1->Enabled = false;
Form2->Chart1->Gradient->Visible = false;
Panel4->Enabled = true;
}
}
// ---------------------------------------------------------------------------
void __fastcall TForm8::CheckBox1Click(TObject *Sender) {
if (CheckBox1->Checked == true) {
Form2->Chart1->View3D = true;
}
else {
Form2->Chart1->View3D = false;
}
}
// ---------------------------------------------------------------------------
void __fastcall TForm8::Panel4Click(TObject *Sender) {
if (ColorDialog1->Execute()) {
Panel4->Color = ColorDialog1->Color;
Form2->Chart1->Color = ColorDialog1->Color;
}
}
// ---------------------------------------------------------------------------
void __fastcall TForm8::TrackBar1Change(TObject *Sender) {
Form2->Chart1->Gradient->Balance = TrackBar1->Position;
}
// ---------------------------------------------------------------------------
void __fastcall TForm8::Edit1Change(TObject *Sender) {
Form2->Chart1->Title->Caption = Edit1->Text;
}
// ---------------------------------------------------------------------------
void __fastcall TForm8::Edit2Change(TObject *Sender) {
Form2->Chart1->Axes->Bottom->Title->Caption = Edit2->Text;
}
// ---------------------------------------------------------------------------
void __fastcall TForm8::Edit3Change(TObject *Sender) {
Form2->Chart1->Axes->Left->Title->Caption = Edit3->Text;
}
// ---------------------------------------------------------------------------
void __fastcall TForm8::Button1Click(TObject *Sender) {
if (password == Edit4->Text) {
if (Edit5->Text == Edit6->Text) {
Form4->ADOTable1->FieldByName("Password")->AsString = Edit5->Text;
ShowMessage("Пароль успешно изменён");
}
else {
ShowMessage("Пароли не совпадают!");
}
}
else {
ShowMessage("Пароль неверен");
}
}
// ---------------------------------------------------------------------------
Модуль Unit9.h
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "File1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm9 *Form9;
int i = 1;
//---------------------------------------------------------------------------
__fastcall TForm9::TForm9(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm9::Timer1Timer(TObject *Sender)
{
if (Timer1->Enabled == true) {
try {
Image1->Picture->LoadFromFile("Resources//Splash//"+IntToStr(i)+".png");
}
catch (...){
ShowMeesage("Картинки загрузочного окна отсутсвуют");
Form1->Visible = true;
Form9->Visible = false;
Timer1->Enabled = false;
}
}
if (i == 39) {
Form1->Visible = true;
Form9->Visible = false;
Timer1->Enabled = false;
}
else {
i++;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm9::FormCreate(TObject *Sender)
{
Form9->Visible = false;
Form9->Position = poDesktopCenter;
Form9->Visible = true;
Timer1->Enabled = true;
}
//---------------------------------------------------------------------------
Модуль File1.h
#include "Unit1.h"
#include "Unit2.h"
#include "Unit3.h"
#include "Unit4.h"
#include "Unit5.h"
#include "Unit6.h"
#include "Unit7.h"
#include "Unit8.h"
#include "Unit9.h"
#include <IniFiles.hpp>
#include <StrUtils.hpp>
2
Документ
Категория
Рефераты
Просмотров
360
Размер файла
935 Кб
Теги
пояснительная, записка
1/--страниц
Пожаловаться на содержимое документа