Курсовая работа: Разработка вспомогательной системной программы в системе программирования Delphi с использованием средств WinApi
Рисунок2. Форма основного приложения.(программно Form2).
На этом этапе возможны следующие события:
1) «Событие1» при на жатии на кнопку «ОТПРАВИТЬ»
2) «Событие2»при нажатии кнопку «Отсоединиться»
3) «Событие3» при нажатии на кнопку «Соединиться»
4) «Событие4» при нажатии на кнопку с изображение каталога.
5) «Событие5» при нажатии на кнопку с изображением дискеты
6) «Событие6» при нажатии на кнопку с изображением восклицательного занка.
7) «Событие7» при нажатии на кнопку «Закрыть»
8) «Событие8» при нажатии на кнопку с изображением жёсткого диска.
Алгоритмы обработчиков событий для основной формы программы:
Глобальные переменные:
TxtFile:TextFile; Файл для сохранения и загрузки истории переписки
St:PansiChar; .// строка для хранения текста сообщений об ошибках и программных сообщениях.
lincInt:Boolean; переменная для проврки правильности соединения
TxtContaningStr:String;// строка , содержащая текст. Используется для хранения текста загружаемой и сохраняемой ситории сообщений.
userName:string; Переменная хранящая имя пользователя, работающего с программой.
Также в программе используются публичные переменные , доступные во всей сборке(всех модулях данного приложения):
HMutex:THandle; - дескриптор объекта типа
ThreadRec:TThreadReceiver;-дескриптор объекта типа поток, для принятия сообщений посланных из первичного потока приложения.
HEvent:THandle;- дескриптор объекта типа событие. Необходим для сообщения вторичным потокам об отправке данных из первичного потока
HFileSender:Thandle;-Дескриптор файла , проецируемого в память, необходим для обращения к файлу ,проецируемому в память, и обмена через него информацией с другими приложениями.
1) Описание события «Событие1»:
Наступление события происходит при нажатии на кнопку «ОТПРАВИТЬ». После нажатия на кнопку «ОТПРАВИТЬ» происходит проверка присутствия данных в поле ввода сообщения , если данные отсутствуют, то происходит выход из процедуры, если данные присутствуют, то происходит вызов процедуры WriteDataInMMF. В данной процедуре происходит ожидания объекта типа Mutex в течении бесконечного интервала времени. Это необходимо для реализации обмена сообщениями между несколькими копиями приложения. В данный момент происходит попытка захвата разделяемого ресурса - файа, проецируемого в память. После захвата объекта типа MUTEX происходит проецирование файла на адресное пространство основного процесса. Если файл спроецирован успешно, то происходит запись данных в этот файл, которые становятся доступны для чтения другим процессам, а затем проекция удаляется. Если проекцию создать не удалось, то выводится сообщение: «Не удалось создать проекцию файла». Алгоритм представлен на схемеах(блок схема 2.1, блок схема 2.2).
Блок схема 2.1 Алгоритм обработки события «Событие1».
Блок схема 2.2 Алгоритм процедуры передачи данных.