Смекни!
smekni.com

Разработка программы контроллера автоматически связываемых объектов для управления конструкторской документацией в среде Windows 95/NT (дипломная работа)

УДК 681.3.069:(389.6:744(083.74)


Сорокин Ю.В.Разработкапрограммыконтроллераавтоматическисвязываемыхобъектов дляуправленияконструкторскойдокументациейв среде Windows95/NT. Дипломнаяработа. - Таганрог,1997. - с.


АННОТАЦИЯ


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

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

Переченьграфическойдокументации


Цтрк 5.035.014СБ Плата УИ. Сборочный чертеж - формат А1


Цтрк 7.035.014     Печатная плата - формат А1


УДК 681.3.069:(389.6:744(083.74)Структурнаясхема контроллераавтоматическисвязываемыхобъектов. Плакат- формат А1


УДК 681.3.069:(389.6:744(083.74)Функциональнаясхема работыоперационнойсистемы Windows 95.Плакат - форматА1


УДК 681.3.069:(389.6:744(083.74)Функциональнаясхема работыOLEи системыOLEAutomation. Плакат- формат А1


УДК 681.3.069:(389.6:744(083.74)Функциональнаясхема работыблока выполненияфункций OLEAutomation. Плакат- формат А1


УДК 681.3.069:(389.6:744(083.74)Структураорганизацииданных контроллера.Плакат - форматА1


УДК 681.3.069:(389.6:744(083.74)Безопасностьи экологичностьпроекта. Плакат- формат А1


Введение


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

Компьютерныесредствапроектирования,кроме непосредственнокомпьютерногооборудования,включают в себяпрограммноеобеспе­чение.На нынешнемэтапе развитияпрограммногообеспечениясистем проектирования,имеется многоразработоксистем автоматизациипро­ектирования.Рынок программногообеспечениянасыщен большимко­личествомразнообразныхпакетов прикладныхпрограмм включающихв себя различныеинструментальныесредства,позволяющиево многом упроститьработу конструктораЭВА.Сейчасу нас в странеи за рубе­жомнаиболеераспространенытакие пакетыпрограммногообеспече­ния,как PCAD,AutoCAD, MicroCAPS, Pspice, MathCadи другие.Эти программныесредства позволяютавтоматизироватьсложные иоднообразныепроцессыприсутствующиена многих этапахпроектированияЭВА.Например,различногорода математическиерасчеты всевозможнойсложности,логическоемоделированиесхем,разработкатопологиимикросхем,разводка печатногомонтажа печатнойплаты,созданиеготовых конструкторскихдокументоввысокого качестваи т.д.

Рост популярностиавтоматизированныхсистем проектированиявозник во многомблагодаряулучшениюпользовательскогоинтерфейсапрограммногообеспеченияв целом и системпроектированияв частности.За последниенесколько лету разработчиковпрограммногообеспечениявсе большиесимпатии вызываетплатформаWindowsдля созданиявысоко качественныхпрограммныхпродуктовпредоставляющихпользователюнаиболее удобныйдля восприятияинтерфейс.УдобствоинтерфейсаWindowsобусловленовысокими требованиямис эргономическойточки зренияпредъявленномусоздателямиWindowsк своей операционнойсистеме.Свою системуWindowsфирмаMicrosoftсоздаладля платформыIBM,не случайно.Надоотметить значительнуюпопулярностьв мире компьютеровсовместимыхс IBMAT. Ставшейв наше времясвоеобразныммировым эталономсочетаниякачества инизкой цены.Болееполовиныкомпьютерногорынка принадлежиткомпьютерамсовместимымс IBMAT.

Однако,любой пакетпрограмм неможет обеспечитьполную универсальностьсвоей системы,но этособственноне к чему.Любое программноеобеспечение,благодаря своейспецифичностив той или инойобласти автоматизациипроектирования,позволяетполучить максимальнуюэффективностьконкретно всвоей области.Но,последнее времянаметиласьтенденция кинтеграциипрограммногообеспеченияна базе такназываемыхавтоматическисвязываемыхобъектов.Этот терминна самом делеозначает неинтеграциюпрограмм впрямом смысле,а лишь ее эмуляцию.Тем неменее, для конечногопользователяэто выглядиткак полнаяинтеграцияпрограммногообеспеченияразличныхнаправленийи различныхфирм разработчиковпрограммногообеспечения.Идеязаключаетсяв том,что любое приложениедля Windows,обеспечивающееOLEAutomation (Objekt Linking and Embedding Automation- автоматическоесвязываниеи внедрениеобъектов),может управлятьсяизвне другимиприложениями,которые пользуютсяим основываясьна предоставленныхприложениемпрограммныхинтерфейсахи таким образомвыполнять теже функции,что и приложениепрародительфункций.

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

1. АНАЛИЗТЕХНИЧЕСКОГОЗАДАНИЯ


1.1.Выбор и обоснованиеоперационнойсистемы


1.1.1. Графическиеоперационныесистемы


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

Windowsпредлагаетпользователюоконный интерфейс,в кото­ром каждойвыполняемойпрограммеотводитсяэкранное окноко­то­рое можетзанимать частьэкрана или весьэкран.Программы,специ­альноспроектированныедля таких оконныхсред, могутполь­зоватьсявсеми их преимуществами.Видпользовательскогоэкрана с перекры­вающимисяокнамиразличныхприкладныхпрограмм достаточнона­гляднодемонстри­руютвозможностисреды по одно­временномуис­пользованиюне­сколькихпрограмм ипередаче дан­ныхмежду ними(рис. 1.1).

Пользовательработает сприложением,находящимсясамом “верхнем”окне, но простымщелчком мышина другом окнеон мо­жетактивизироватьдругую программу.Кроме того, ужев своих ран­нихверсиях Windowsпозволялакопироватьин­формациюиз окна од­нойпрограммы вокно другойпрограммы припомощи средства clip­board- буфера обмена.

Графическийрежим Windows,как и графическийрежим лю­бойдругой графическойоперационнойсреды (WindowsNТ,ОS/2,Soleras,Motif )имеет малообщего с знакоместнымграфическимрежимом, доступнымво многих программахдля МS-DОS,всегда размещающихна экране стандартноеколичествосимволов, напри­мер8Оx25или 80x43.Windows (а следовательно,и любая Windows-программа)по­зиционируетграфическиеобъекты с точностьюдо пикселя.

Размерытаких объектовWindows,как элементыокон, кнопкии значки стандартизованы.Для отображениясистемныхсообщений инаименованийкоманд менюWindowsприменяетсоответствующиерастровые(матричные)шрифты, имеющиеразличныетипоразмерыдля работы врежимах низкогои высокогоразрешения.Для подго­товкидокументов,содержащихтекст, Windowsпозволяетиспользо­ватьмасштабируемыешрифты, применяемыекак для экранноговы­вода, таки для распечаткипа принтере.Благодаря этомув процессеподготовкидокумента можновидеть на экранепрактическито же, что будетполучено набумаге.

ГрафическаяподсистемаWindowsиспользуетуниверсальныеметоды обращенияк любым графическимустройствам вывода,будь то видеосистемаЕGА или superVGA, лазерныйпринтер илиавтомат длявывода типографскихформ. СтандартизованинтерфейсWindows,конечно, не ссамими дисплееми принтером,а с драйве­рамиэтих уст­ройств,причем драйверовв комплектпоставки сис­темыWindowsвходит великоемножество.

Выпускграфическойоперационнойоболочки MicrosoftWin­dows3.0 стал главнымсобытием 1990 годана программномрынке, за­тмившимодновременноепоявление IBMOS/21.3. Кроме прият­ногопользовательскогоинтерфейсасреда Windows предоставлялазначи­тельныйкомплекс услуг.

С системойпоставлялосьбольшое количестводрайверов длясамых разныхмоделей устройствввода-вывода,таких каквидео­адап­терыи принтеры.Широчайшаяаппаратнаясовместимостьбыла од­ним из факторов успеха Windows. Комплект Windows3.0 со­дер­жалнесколько вариантовдрайверов дляразных моделей кла­виатур, мышей и видеоадаптерови большое количество драйверов принте­ров. В Multimedia дляWindows 3.0, а затемв Windows3.1 появились драйверы звуковыхкарт, МIDIустройств и синтезато­ров. Количе­ствонаименованийподдерживаемыхустройствбыстро росло...


1.1.2.Windows 3.Х


С точки зрения массового пользователя, не избалованногоOS/2,Windows 3.0 была действительнопередовой средой. Онаис­пользовала весь объем памяти, адресуемой микропроцессорами80286, 80386 и выше. С 32-разрядными микропроцессорами(80386 и выше) и при наличии не менее 2 Мбайтпамяти Windows3.0 могла использовать виртуальнуюпамять, то естьработать с некото­рым пространством на жесткомдиске как спродолжением опера­тивной памяти компьютера, размещая внем данные икод про­грамм.

Windowsимела многозадачныевозможностис кооператив­нымиспользованием процессорного времени “одновременно” работающими приложениями. Кооперативную

многозадачность можно назвать многозадачностью “второй сту­пени” поскольку она использует более передовые методы, чем.простое переключение задач, реализованное многими извест­нымипрограммами (например, МS-DOSshell из МS-DOS 5.0 при про­стом переключении активная программа получает всепроцессор­ное время, а фоновые приложения полностьюзамо­раживаются. При кооперативной многозадачностиприложение может захва­тить фактически столько процессорноговремени, сколько оно считает нужным. Все приложения делят процес­сорное время, периодически опрашивая другдруга.

С другойстороны, режимкооперативноймногозадачностименее совершенен,чем режим разделениявремени, называемый также вытесняющей многозадачностью.При вытесняющей много­задачности программыпотребляютровно столькопроцессорного времени, сколькоим положено, а не сколькозаблагорассудится. За выделениепроцессорноговремени томуили иному приложе­ниюотвечает толькооперационнаясистема, руководствуясьтеку­щимиприоритетами.Благодаря этомупри вытесняющеймногоза­дачностиможно в любоймомент переключитьсяна любой процесс,в отличие откооперативноймногозадачности,при которойдля пе­реключениямежду программамиможет потребоватьсясуществен­наяпауза. Привытесняющеймногозадачностикажется, чтопро­цессыдействительноработаютодновременно,хотя это насамом деле ине так, - во всякомслучае, на компьютерес одним микро­процессором,каким являетсяобычныйIВМ РС.

С апреля1992 года Windows3.1 официальноименуетсяопе­ра­ционнойсистемой. Интерфейсее был несколькоулучшен, в част­ностибыли усиленывозможностиуправленияэкраннымиобъек­тамимышью (Drag-and - drop методперетаскивания).Windowsстала непосредст­венноподдерживатьдинамическийобмен даннымимежду приложе­ниями(DDЕ -Dynamic Data Exchange ). Всистему вошлисредства мультимедиа,ранее поставлявшиесяотдельно впа­кете WindowsMultimediaExtension.Для расширенияиздательскихвозможностейв Windowsбыла встроенаподдержкасистемы мас­штабированияшриф­тов TrueType.

Windows3.11 forWorkgroups (“длярабочих групп”)пози­цио­нироваласькак самостоятельнаясетевая операционнаясистема дляодно-ранговойлокальной сети,а также каксетевой клиентдля сервераWindowsNТ.В остальномWindows3.11 для рабочихгрупп являласьслегка улучшенноймодификациейWindows3.1, работаю­щейтолько в 386-мРасширенномрежиме на32-разрядныхмикропроцессорах.

А теперьмы постараемсяразобратьсяв том, как устроенаWin­dows.

Режимыработы Windows3.XЧтобы запустить мотор Windowsна полную мощность,ко­нечно, нужныпрежде всегомегабайты имегабайтыоперативнойпамяти. Но ихневозможноиспользоватьна микропроцессорах8088/86. Не слиш­комудачным решениембыл и защищенныйрежим 80286: для тогочтобы использоватьна компьютереприложениядля новойопераци­оннойсреды вместес МS-DOSприложениями,при­ходилосьпереклю­чатьмикропроцессориз защищенногорежима в реальныйи обратно.

Здесь уместновспомнить отом, что фирмаMicrosoftвесьматесно сотрудничалас Intelво время разработкимикропроцессораi80386.Microsoftфактическинавязала инженерамIntelсобственнуюконцепциюрежима виртуальногомикропроцессора8086-V86,наи­бо­лееудобную дляразработкиоперационнойсистемы, использую­щейМS-DOSприложениявместес программамизащищенногоре­жима. Посколькув 1990 году рынокеще не был готовк полному переходуна операционнуюсистему длямикропроцессора80386, Windows3.О могла функционироватьв трех режимах,в каждом изкоторых микро­процессори память использовалисьпо-разному.

В реальномрежиме работыWindowsсистема функциониро­ватьдаже на компьютерес микропроцессором 8088 или 8086, обо­рудо­ванномтолько обычнойпамятью дляработы приложенийв ре­альномрежиме Windows3.0 использоваласьтолько обычнаяпа­мять МS-DOSи отображаемаяпамять.

Стандартныйрежим Windows3.0 требовал дляработы микро­процессор80286 и всего 1 Мбайтпамяти - 640 Кбайтстандартнойи 384 Кбайт дополнительной(настоящаяработа начиналасьпри объ­емепамяти 4 Мбайт). Для приложенийWindowsиспользоваласьрасши­реннаяпамять (ХМS).Для программ МS-DOS,загружаемыхиз-под Windows,применяласьобычная памятьи переключениемикропроцес­сораиз защищенногорежима в реальный.

Более полноиспользовалаппаратныересурсы 386-йРасши­рен­ныйрежим Windows. В этом режимеверсии Windows3.0 и 3.1 рабо­талис виртуальнойпамятью, имевший примерно втроеболь­ший объем,чем физическаяоперативнаяпамять. ПриложениямМSDOSв 386-м Расширенномрежиме отводиласьпроизвольнаяоб­ласть памяти,которая в виртуальномрежиме 8086 размечаласькак обычнаяпамять MSDOS . По умолчаниюМS-DOSпрограммыза­гружалисьзанимая, какобычно, весьэкран, но моглибыть переве­деныв графическоеокно - стандартноеокно Windows.ПриложенияМS-DOS,запущенноеиз-под Windowsв 386-м Расширенномре­жиме, работалов виртуаль­ноймашине, инымисловами, считалосебя загруженнымна своем соб­ственномкомпьютереи знать не зналоо существованииWindows.

Разумеется,для работы в386-м Расширенномрежиме требо­валсякомпьютер смикропроцессоромне ниже 80386. Объявленные требования к объему памяти(2 Мбайт) опять-такине стоило при­ни­мать всерьез. Минимумом являлись 4 Мбайтпамяти, а длябо­лее или менеесерьезной работы требовались8 Mбайт или больше.

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

Ядро Windowsсостоит из трехкомпонентовKernel,Userи GDI.При помощидополнительныхDLL-файлов(динамическиза­гру­жаемыхбиблиотек)поддерживаютсяотображением стандарт­ныхдиалоговыхокон, протоколыDDЕ(динамическогосвязываниядан­ных) и ОLЕ(связыванияи встраиванияобъектов),взаимодейст­виес драйверамиустройствввода-выводаи другие чертыWindows.Win­dows-драйверы устройствбывают, кстати,двух видов -“обычные”DLL-драйверыи 386драйверы,последниепредназна­ченыопять-таки дляработы тольков 386-м Расширенномрежиме Windows.

Наиболеенизкоуровневойчастью ядраWindowsявляетсямо­дульKernel,управляющийраспределениемпамяти, процессами,фай­ловымвводом-выводоми так далее. Вразных режимахработы Win­dows3.О функции Kernelвыполнялиразличныефайлы: ker­nel.ЕХЕдля Реальногорежимаkrnl286.Еxeдля Стандартногоре­жима, КrnlЗ86.ЕХЕдля 38б-го Расширенногорежима.

Так чтоWindows3.0 была разработанакак операционная система, имеющаятри разныхядра. Когда былупраздненРеальный режимработы, из комплектапоставки Windows3.1 и исчез файлKernel.dll.Следующий шагбыл сделан,Windows 3.11 длярабочих групп- эта системаработала тольков 386-м Расширенномрежиме. МодульUser(user.ЕХЕ) служитдля работы склавиатурой,мышью, таймероми портами, атакже выполняетфункции отображенияэле­ментовграфическогоинтерфейса(окон,меню). Онуправляетта­кими драйверами,как, например,различныедрайверы клавиатурыи мыши.

Наконец,модуль GDI (интерфейсграфическихустройств, файлGDI.ЕХЕ)поддерживаетграфическиепроцедуры -прорисовкулиний, закрашивание,отображениешрифтов (начинаяс Windows3.1 - все операциисо шрифтамиTrueType)и взаимодействуетс драйве­рами графическихустройств -дисплея и принтера.СWindows 3.1 поставля­лосьболее десяткадрайвероввидеоадаптеров.Для под­держкиприн­теровв Windows3.1 впервые былапримененаархитек­турамини-драй­веров.Универсальныйдрайвер принтераNIDRV.DLL выполнял ап­паратно-независимые функции печати-несколько десятковмини-драйверов,поставляемыхпроизводите­лями, дополняли универсаль­ный драйвер функциямиобходи­мыми специально для поддержки конкретныхустройств ине по­вторялиуже написанныйобщий код.


1.1.3. Windows95


В 1996 году фирмойMicrosoft, былавыпушена следующаяверсия операционнойсистемы Windows.Которая быланазвана фирмой32 разрядноймногозадачнойграфическойсистемой./ 1 /

АрхитектураWindows95.Что должнабыла сделатьMicrosoft,чтобы прийти к 32-раз­ряд­нойоперационной системе с обеспечением вытесняющеймно­гоза­дачности, которая бы при этом оставаласьполностьюсовмес­тима с прикладными программами для Windows3.xи MS-DOS,не требо­валабы для работы самой МSDOS и “умещалась”в четырех мега­байтахоперативнойпамяти ?

Фирмой Microsoft уже выпущены системы, удовлетворяю­щиесамым серьезным требованиям к управлению памятью ипро­цес­сами, - WindowsNТSERVER и WindowsNТworkstation(выпущены версии3.51 и готовятсяк выпуску 3.52),Однако этисистемы самипредъявляютсерьезнейшиетребованияк аппаратуре,а заодно и кпользователю.WindowsNТSERVER предназначаетсяне для десят­ковмиллионов потребителейWindows, а для сетевогоадминистри­рования.WindowsNТ workstationнужна тем пользова­телям,которые используют приложения с высокой интенсивно­стьювычислитель­нойобработки, тем,кто нуждаетсяв высокой степенибезопасностиданных, и тем, кто больше беспокоитсяо надежности системы, чем о совместимости с приложениямидля MSDOS и Windows3.x.

Всех остальныхпользователейна порядокбольше, и имнуж­нее “легкая”система.

ЯдроWindows 95. ЯдроWindows95, как и во всехпредыдущихверсиях Win­dows,имеет трехуровневуюструктуруKernel-User-GDI. Все эти модули должны бы быть32-разрядными,но в действительностиполностью32-разряднойсделана толькосамая низкоуровневаячасть ядраWindows95 - Кегне1. Вполнепонятно, что,объявляя о32-разряднойсис­теме,Microsoftобязана былавыполнить в32-раз­рядномкоде хотя бытакие базовыевещи, как функцииввода- вы­вода,управленияпамятью и процессами,поддержкусетевой и фай­ловойсистем.

Что касаетсядвух другихмодулей ядра,то расчетыпоказали, чтополностью32-разрядныеUSERи GDIвместе потребуютдля ра­ботыболее 1 Мбайтпамяти, Windows95 использует1б-разрядныйкод, когда оннеобходим дляобеспечениясовместимостиили если 32-разрядноекодированиенецелесообразно,то есть увеличилобы расход памятибез заметногоувеличенияпроизводительности.

Поэтомумодуль User,остался в Windows95 преимущест­венно1б-разрядным,а его 32-разряднаячасть используетсядля пе­реадреса­циивызовов 32-разрядныхприложений16-разрядномублоку. Боль­шаячасть функцийОВ1, включаяподсистемубуфериза­циивходных и выходныхпотоков, подсистемупечати, растеризаторшрифтов True­Туреи основныеоперации рисования,перенесенав 32-разрядныймо­дуль, оставшийся16-разрядныйкод описываетуправлениеокнами. 16-разрядныефункции ядраWindows95 напи­саныпреимущественнона ассемблере .Чтоже касаетсяKernel, то его16-разряднаячасть задей­ствуетсятолько призагрузке Windows95 и используетсятолько дляинициализации32-разряднойчасти Kernel.Сам Kernel32никогда необращаетсяк Kernel16.На рис.1.2.показано,для какихфункций ис­пользуется 32-разрядныйкод,а для каких16-разрядныйкод модулейядра Windows95.

Многозадачность.Анализируя выполнение под Windows 95 16-разрядныхприложений для Windows3.x и МS-DOS, мы видим по большейчастизнакомые, хотя и серьезно улучшенные методы Win­dows3.x.

Как показанона рис. 1.3., 16-разрядныеприложения для Windows (“приложения win16”) выполняютсяв общем простран­стве адресов в пределахсистемнойвиртуальной машины. Такие ва­рианты, как выполнение каждого приложения win16в отдель­ной виртуальной машине (чтовозможновОS/2) илиполная эмуляцияWindows3.xв пределахоперационной системы (как это делаетсяв WindowsNТ).

32-разрядные приложения, созданные с учетом требова­нийWindows 95 (“приложения win32”), выполняются в режиме “подлинной” вытесняющей многозадачности. Кроме того,Win­dows95 поддерживает многопоточные приложения, способ­ные за­пускать параллельно несколько процессов.

Для каждого win32-приложения и для области адресов приложений win1б используются отдельные очереди сообще­ний.Таким образом, приложения win16 фактически изолиро­ваныот остальных процессов. Кроме того, вWindows95 приме­ненныеме­тоды очисткии восстановлениясистемы в случаеоши­бок. Если ошибка в программе, выполняющейсяпод Windows 3.x, могла за­просто “обрушитьвсю” систему, тоошибка в одномиз приложенийпод Windows95 обычно не влияет на выполнение остальных про­грамм. Низкоуровневыекомпонентыоперационной системы изоли­рованы от прикладныхпрограмм, поскольку пользуются сервисом другого уровня защитымикропроцессора80386.

Использованиепамяти. Для разработчиковпрограммногообеспечения1ВМ РС дол­гиегоды оставаласькамнем преткновениясегментированнаямо­дель па­мяти1б-разрядныхмикропроцессоров8088/86 и 80286.

Сегментомявляется непрерывнаяобласть памяти,адресуемая16-разряднымичислами ( 64 Кбайт). Для того чтобыиспользоватьбо­лее б4 Кбайтпамяти,пришлось разработатьсистему адресациипамяти припомощи двухчисел - адресаначала сегментаи 1б-раз­рядногосмещения внутрисегмента.Микропроцессоры80386, спо­собныеопе­рировать32-разряднымиадресами, моглибы без всякихпремудростей( и отнимающихвремя вычислений!) адресоватьдо 4 Гбайт, оператив­нойпамяти, Но МS-DOSи Windows3.xвынужденнопродолжали ис­пользовать устаревшуюсегментированнуюмодель памяти.

Дляwin32-приложений доступна плоская(несегментированная) модель памятиWindows95. Система пол­но­стью использует адресуемую память 38б-х процессоров, при этом прикладные программы могут работать с объемом па­мяти до 2Гбайт, остальные 2 Гбайт Windows95 использует для собственных нужд. Файл виртуальной памяти Windows95 имеет динамический размер, ограниченный только объемом жест­кого дискаи не зави­сящийот фрагментации.

Использованиесистемныхресурсов.Под системными ресурсами в терминологииWindowsпони­мают области памяти, используемые модулями USERи GDI.В ресурсах GDI располагается информация о графических объек­тах,исполь­зуемых системой в данный момент. Ресурсы USERвключают ин­формацию об окнах, менюи так далее. Для того чтобымаксимально ускорить процедуру обращения к ресурсам USERи GDI,в Windows3.x их объемы ограничилисегментами по б4 Кбайт.Каждое поро­жденноесистемой окноотнимало при­мерно2%системныхресурсов, акогда процентсвободныхсис­темныхресурсов падалдо 20%,за­грузка новыхприложенийстано­виласьневозможной.

Большаячасть ресурсовWindows95 хранится в областях па­мяти с 32-разрядной адресацией, Соответственно объем ресур­совWin­dows95 практически неограничен.Те из старыхWindows-про­грамм, ко­торые непосредственно обращаются к системным ресур­сам, могут использовать их под Windows95 так же, как ипрежде.

Файловаясистема.Одно из самых назойливых ограничений систем МS-DOSи Windows3.x- имена файлов, состоящие не более чем из11 (8+3) символов. Новая файловая система позволяетwin32-приложениям пользоваться длинными (до255 символов)именами файлов и при этом остается полностью совместимойс FAT. Разумеется,пользо­ваться такими именами файлов гораздоудобнее.

Некоторые компоненты новой файловой системы были ис­пользованыеще в Windows3.11 для рабочихгрупп - драйверус­та­навливаемыхфайловых систем,32-разрядный драйвер FАТ,32-раз­рядноекэшированиежесткого диска. Все эти чертыполучили даль­нейшееразвитие вWindows95. Кроме того,появились 32-раз­рядный драйвер CD-ROM, более мощная подсистемаблоковоговвода-вы­водаи другие черты.

Поддержкадрайверовустройств.аиболее громоздкие МS-DOSдрайверы, занимавшиебольше всегоместа в базовой памяти или UMB,теперь не нужныпри ис­пользовании оболочки защищенного режима. Согласно докумен­тацииMicrosoft системаWindows95 обеспечивает:

  • полную поддержкуразделениядоступа к файлам,заменяя рези­дентнуюпрограммуSНАRЕ.ЕХЕ;

  • полную поддержкуразнообразныхзвуковых плат,СD-ROMпри­водови другихмультимедиа-устройств,не требуяпри этом уста­новкиМS-DOSдрайверов;

  • поддержкуфайловой системыСD-RОМдисков,заменяяMSCDЕХ.ЕХЕ;

  • кэшированиедисков, заменяяSMARTDrive;

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

  • динамическоесжатие данных, заменяя DRVSpace.BIN(DBLSPACE.BIN);

  • полную поддержку работы станции в локальных сетях MS-NЕТи NovellNetware, заменяявсе резидентныепрограммы, ко­торые приходилось загружать для работы в этихсетях.

Windows95 поддерживаеттекущую версиюпротоколаPlug-and-Play.При установкедополнительногоустройства,подключае­могона основеPlug-and-Play,система самазаботится оего конфи­гурировании.

Достаточноудобно использоватьWindows95 и без аппаратнойпод­держкиPlug-and-Play- система чрезвычайномного знаето том, ка­киесуществуютвнешние устройстваи как идентифицировать,включая СDдисководы,звуковые карты модемы,мыши и многоедругое.

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

Современныйпользовательскийинтерфейс.Облик оболочкиExplorer,основанныйна полноценномвоплощенииметафоры рабо­чегостола и папок,удобен и нагляден.Панель задачдает полныйобзор приложений,выполняемыхсистемой вданный мо­мент.Дос­туп ко всемобъектам, будьто программы,документы,сете­вые ре­сурсыили инструментынастройкисистемы, унифицирован.Имена любыхобъектов могутсодержать до255 символов.

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

Широкиевозможностинастройки.Windows95 можно настроитьсотнями способов,причем доступк средствамнастройкипользова­ниеими весьмапросты.

Удобствоработы с документами.Windows95 - это следующийшаг к интеграцииразличныхприкладныхпрограмм однурабочую среду.Можно легкосоздаватьдокументысредствамиоболочки, переноситьданные из документана рабочий столи в другой доку­мент,выбрасыватьв “мусорнуюкорзину”фраг­ментытекста, доку­ментыили целые папки,а при необходимости- возвращатьих.

Усовершенствованнаясправочнаясистема. Справочнаясистема Windowsстала удобнееи гибче. Многиеразделы справкисостав­леныв виде пошаговыхруководствс возможностьювыполнениятех или иныхрекомендуемыхдействийнепосредственноиз системыпомощи.

ЭмуляцияMS-DOS.MS-DOS7.0 + Windows 4.0.Покинуть оболочку Windows95 для работыс МS-DOSпро­граммами в реальном режиме можно, только инициировавпере­загрузкуили отключениесистемы илиже перейдя врежим эму­ляции МS-DОS (МS-DOS mode)с возможностьювозврата в графическуюоболочку покоманде ЕХIТ.Похоже, что нормаль­нымсостояниемWindows95 действительноявляетсяграфическийинтерфейс,который всегда на­ходитсягде-то под рукой,в памяти компьютера.Но это не так.

В действительности“режимэмуляции МS-DOS”представляетсобой классическуюМS-DOS,работающуюв реальномрежимеи адре­сующую640 Кбайт оперативнойпамяти. Графическаясистема Win­dows 95 со всеми своимипреимуществамипо-прежнемуявля­етсяоболочкойзащищенногорежима дляMS-DOS.Даже новейшие32-разрядныеграфическиеприложениядля Windows95 продол­жаютис­пользоватьдля выполненияотдельныхопераций функцииМS-DOSи базовую областьпамяти.

Таким образом,определениеMicrosoftWindows95 как опера­ционнойсистемы, нетребующейотдельной копииМS-DOS,осно­ванона том, что Windows95 включает всебя все, чтоей нужно отМS-DOS.Ничто лучшеМS-DOSне поддержитMS-DOS-приложе­ния,именно в МS-DOSлучше всегочувствуют себяте 16-разрядныедрайверы уст­ройств,которые все-такиприходитсязагружать(например, драйверысканеров).

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

1.2. Анализмеханизмасвязыванияи внедрения


Научно-технический прогресс 90-х годов обусловилнеук­лонный рост популярностиобъектно-ориентированного програм­мирова­ния (ООП), и в настоящее время многиепрограммистыперешли в своейработе на С++или VisualBasic. Ужесуществуютобъектно-ориентированныебазы данных,объектно-ориентирован­ныедизайн и анализи даже объектно-ориентированный СОВОL. На естественновоз­никающий вопрос -не осталисьли Windowsили операционныесистемы вобъ­ектно-ориентированномотноше­ниидалеко позади.Безус­ловно,нет. ПродуктOLE( Objekt Linking and Embedding )компании Microsoftоткры­ваетновые путидля при­мененияобъектов вWindows.ОLEпредполагаетновый способмышления.Про­граммиств среде ОППдолжен мыслитьобо всем какоб объектах- от файла на диске, эле­ментаданных илиприло­жениядо аппаратногообеспеченияи операционнойсис­темы. Крометого, OLEзаставляетпрограммистаследоватьстрогому на­боруправил, на за­висящихот языка программирования,операци­оннойсистемы илидаже от аппарат­ной платформы.

Введениев OLE.OLEслужитоснованием,на которомстроятся объекты.Эта аббре­виатураозначала изначальносвязываниеи внедрениеобъек­тов (ObjektLinking and Embedding) свыпуском версииОLE2 приме­нениеОLEуже не укладыва­етсяв рамках,связыванияи внедрения.ОLЕсегодня включаетв себя унифициро­ваннуюпередачу данных, структурированноехранилищеинформациии автоматиза­цию.Не следуетсужать представлениеоб ОLЕсвязываниеми внедрением;смотреть наОLЕследует какна набор строительныхблоков, позво­ляющихсоздаватьсложные приложения.На самомделеMicrosoft пересталарасшифровыватьаббревиатуруОLEкак ObjektLinking and Embedding, чтобыизменить сложившеесявосприятиеОLЕ.)/2 /

Предназначениеи история ОLЕ.Если допоявления OLE1 у пользователяWindowsимелась элек­троннаятаблица,которуюему нужно быловставить вдокумент текстовогоредактора,обыкновенноон должен былэкспортироватьданные из таблицыв файл стандартногоформата, импортироватьданные из файлав текстовыйредактор, азатем в редактореих пере­форматировать.Если пользователювезло и обаприложенияпод­держиваликопированиеи вставку, товместо явногоэкс­порта/импортаон мог копироватьинформациючерез буферClip­board.Всякий раз,когда электронныетаблицы изменялись,процесс переносаданных нужнобыло повторять.Это, естественно,приво­дилок лишней затратевремени и сил.

Но незадолгодо выхода Windows3.1 появилосьОLE1, и этозначи­тельноупростилоописаннуюиспользованияобщих данныхв по­добныхприложениях(если они умелиработать сОLЕ).На смену операциямэкс­порта/импортаи копированияпришли связываниеи внедрение.Стало возможнымтак подключитьэлектроннуютаблицу к текстовомуредактору,чтобы документредактораотражал самыепоследниеизменения,произошедшиев электроннойтаблице. Крометого, электроннаятаблица (котораяпоявилась втекстовомдоку­менте)может бытьвыбрана нажатиемкнопки мыши.При этом ав­томатическизапускаетсяприложениеэлектроннойтаблицы, позво­ляющее выполнятьредактированиеданных или другие специфиче­скиедля таблицоперации. КомандаUpdateзакрываетэлектроннуютаблицу, иобновленнаяэлектроннаятаблица внедряетсяв документтекстовогопроцессора.

OLE2 являетсяследующимлогическимшагом в развитииэтой стра­тегии.В ОLE1 нажатиекнопки на электроннойтаблице, находящейсяв документетекстовогодокумента,приводило кза­пуску приложенияв отдельномокне. В ОLЕ2 вводится понятиеак­тивациипо месту (такжеизвестное подназванием визуальногоре­дактирования).Приложениеэлектроннойтаблицы запускаетсякак и прежде,но вместо отдельногоокна электроннаятаблица какбы сливаетсяс тек­стовымредактором.Изменяетсяменю, отражаяменю электронной таблицы. Из­меняетсядаже инструментальныелинейки, но вывсе равно находитесьв текстовомредакторе. Дваприложениякак бы соединяютсяи текстовыйредактор приобретаетфункциональныевозможностиэлектроннойтаблицы. Такпользова­телюнужды переключатьсядля просмотраданных с одногоприло­женияна другое; выможете ра­ботатьс приложением,которое удовлетворяетбольшинствуваших потребностей,и внутри негоиспользоватьвозможностидругих приложений.

Для ОLE2 пришлось переделатьзаново многоеиз существо­вавшегов ОLE1 чтобырасширить егофункции и улучшитьпроиз­водительность.Напри­мер, ОLЕ1 построено надинамическомоб­мене данными(DDЕ).Для передачиинформа­циитуда и обратноDDE в своейоснове используетсообщенияWindowsи возврат­ныевызовы. ПосколькуиспользуютсясообщенияWindows,DDЕогра­ничиваетсярам­ками одноймашины.OLE2 не опираетсяна DDEвместоэтого оно построенона протоколеLPRC(Lightweight Remote Procedure Calls -легких удаленныхпроцедурныхвы­зовах).

АрхитектураОLЕ.Чтобыдостигнутьсвоих задуманныхфункциональныхвоз­можностей,ОLEв качествестроительныхблоков используетболь­шое количествообъектов. OLEсодержитновые объектыдля реали­зации таких концепций,как формировка(marshaling),которая об­служиваеткоммуникациюмежду процес­самии опираетсяна LPRC;структурированноехранилище,которое обес­печиваетхранение до­кументов,содержащихдругие документы;ярлык (moniker),управ­ляющийподключениеми переключениемсвязанныхданных. Каж­дыйиз этих механизмовнеобходим ОLEдля выполнениясвоей ра­боты.Крометого, ОLEвводит понятиеавтоматизации,которое нетребуется длясвязыванияи внедренияв традиционномсмысле. Ав­томатизациюможно пониматькак способ,посредст­вомкоторого пользовательможет работатьс вашим приложением внутри опреде­ленногоим самим макроязыка.Сервер-автоматOLЕуправляетсялюбым автомат­нымконтроллером OLE(см. таблицу).


Приложения-автоматы- серверы иконтроллеры.

Продукт Автоматныйсервер Автоматныйконтроллер

VisualBasic

да да

Exel

да да

Word6.0

да нет

AutoCad12LT

да нет

PhotoShop3.0

да нет

CorelDraw5.0

да нет

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

Объекты.Под понятиео6ьекта ОLЕпопадает все,что может иметьма­шинноепредставление.Объектомможет бытьдокумент текстового процессора,рисунок иличертеж, такжечасть чертежа(допустим какойлибо слой чертежапечатной платы),видео-клип,звук илидаже приложение.Та­кое пониманиерасходитсясо стандартнойин­терпретацией,в которой объекты- дан­ные, надкоторымипроизво­дятсяманипуляциипосредствомфункций и процедур.Хотя OLEподдерживаетобъекты тольков рамках одноймашины, это неогра­ничениеархитектурыOLE,а лишь ограниченностьее реализации.Уже демонст­рироваласьверсия OLE,названнаяраспределеннымОLЕ,в которой границыме­жду машинамидля объектовпро­зрачны.Другими словами,если ваше приложениезапра­шиваетOLE-объект,то поставщикэтого объектане обязательнонаходится навашей машине,хотя с точкизрения вашегоприложенияОLE-объ­ект- локальный.

Интерфейсы.OLЕинтерфейс - этомеханизм,используемыйдля доступак группе связанныхс объектомфункций. Есливы хотите выполнитьв OLEоперацию надобъектом, можнозапроситьспецифическийин­терфейс,имеющий нужнуювам функцию.Когда вы запрашиваетеинтерфейс, тообращаетеськ объекту, указываяего ID-номер.Каж­дый интерфейсимеет уникальныйномер-идентификатор(InterfaceID или IID).Объект возвращаетлибо состояниеошибки,если объектне поддерживает запрашиваемыйинтерфейс илипроисходитдругая ошибка,либо он возвращаетуказа­тельна требуемыйинтерфейс.

Компонентнаямодель объекта.Компонентнаямодель объекта(также известнаяпод аббревиа­ту­ройСОМ) - это спецификация,определяющаясвязующий ОLЕклей. СОМ оп­ределяет,каким образомобъекты взаимодействуют.СОМ предусматриваетдля объектовОLЕтакую специфику,в част­ности диктуя, какиеинтерфейсыобъекту необходимы,как объектможет бытьсоздан и когдаон может бытьуничтожен.

Структурированноехранилище.Структурированноехранилище - этоспецификация,опреде­ляющаяметод храненияобъектов.Структурированноехранилище можно представитьсебе как OLE-аналогDOS.Этот механизмпод­держивает большинствоиз функций DOS- файлы и каталоги,ко­пированиеи перемещениефайлов (файлыназываютсяпотоками, аката­логи -хранилищами.Кроме того,термин “структурированноехранилище”информациине подразумевает,что данныехранятся надиске. Так жекак и файлыDOS,которые могутнаходится наRAM-диске,жестком диске,флоппи-дискеили даже наCD-ROM,объ­екты, размещенныев структурированномхранилище,могут нахо­дитьсяв любом из этихмест, а такжеи в других. ЧтобыDOSмогла использоватьдля храненияинформациидругие устройства,такие, как оптическийфлоппи-дискили се­тевойдиск, обычнонужен драй­верустройства.Структурированноехранилищеинфор­мациитакже имеетметоды дляподдержкинестандартныхустройств.

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

Автоматизация.OLE-автоматизация- это надзоринтерфейсов,в типичномслу­чае псзволяющийиспользоватьприложениев качестве ОLЕобъ­екта.Автоматизациявозможна нетолько дляприложенийв форме исполняемыхмодулей (ЕХЕ),но и для динамическиприсоединяе­мыхбиблиотек(DLL).Автоматизацияпозволяетпосредст­вомна­бора определенныхправил извнезапрограммироватьили специали­зироватьприложение.Это дает приложению,например, VisualBasic,возможностьуправлять Exel,в результатечего функцииЕхсеlста­новятсядоступны вашемуприложениюна VisualBasic. АвтоматныйконтроллерOLEуправляетобъектами-автоматамичерез посредствоавтоматногосервера.

Унифицированнаяпередача данных.Унифицированнаяпередача данных- это наборинтерфейсов,которые позволяютклиенту и серверуобмениватьсяданными. Онаявляется DDE-эквивалентоми функций буфераcut/сору/paste,соб­ранных воедино. Унифици­рованнаяпередача данныхпосылает уве­домлениев случай еслиданные изменяются(подобно связиDDE),а также поддерживаетпереговорыо формате, вкотором данныебу­дут передаваться.Кроме того,унифицированнаяпередача данныхпредусматри­ваетвозможностьпередачи одноголишь дескриптора(handle)данных вместосамих данных.Объект-серверможет ре­шить,что вместопередачи 20 Мбайтданных в оперативнуюпамять черезбуфер обменаобъекту-клиентубудет передандескриптордан­ных, чтобыклиент сам могих получить.Это избавляетсервер отнеобходимостичтения всехданных и передачиих клиенту, акли­ента отнеобходимостисамостоятельнойобработкиданных. Этотакже избавляетконечногопользователяот сиденияперед экраномкомпьютерав ожиданииокончанияобмена.

Связываниеи внедрение(Linkingand Embedding).Связываниеи внедрение- два принципа,которые потради­ции известныв OLE(Objekt Linking and Embedding)лучшевсего. Связы­ваниеи внедрение(вместоэтоготеперь говорятпросто о докумен­тахОLЕ)позволяютобъекту-клиенту(который можетбыть другимприложением)прикрепитьсяк объекту-серверу.Присоединениеможет либоосуществлятьсясвязыванием(данные находятсявне со­ставногодокумента),либо данныемогут внедрятьсявнутрь со­ставногодокумента.Вне­дренныеданные сохраняютсянепосредст­веннов документе,в то время какпри связыва­ниидля доступак данным OLEв действительностисохраняетсвоего родадо­рожную карту.Дорожной карта называетсяярлыком (moniker).Когда ОLЕполучает за­просна восстановленияданных, оносмотрит наярлык (дорожнуюкарту), чтобыих отыскать.Связанныеданные могутхраниться вне принадлежащемОLЕфайле или вструктурирован­номхранилище(возможно даже,что данныенаходятсягде-то в са­момсоставномдокументе).

Составнойчастью связыванияи внедренияявляется способ­ностьOLEвыполнятьактивацию поместу.В OLE1 при двойномнажатии кнопкимыши над связаннымили внедреннымобъектом запускаетсясервер этогообъекта.В ОLЕ2 возможна активацияпо месту. Дляпользователядва приложенияявляются какбы одним. Активацияпо месту присое­диняетнужные частиприложениясер­вера (такие,как пунктыменю и инструмен­тальные линейки) кпри­ложениюклиента, когдапользовательработает свнедреннымобъ­ектом. Придвойном нажатиикнопкой мышинад внедреннымобъ­ектомпроисходитпреобразованиеприложенияклиента,в нем изме­няютсяменю и линейкиинструментов,а такжепрочие элементыинтерфейса,для работы сприложениемсервера внедренногообъ­екта.При двойномнажатии кнопкоймыши над связаннымобъектом приложениесервер запускаетсяв отдельномокне (как вOLE 1).

В терминахOLEописанное вышедействие (двойноенажатие дляак­тивациисервера)называетсяактивациейизвне (outside-in).При акти­вацииизвне серверобъекта неактивируется(не за­пуска­ется),пока пользовательне нажмет надобъектом кнопкумыши дважды.Активацияизнутри (inside-out)требует, чтобыобъект-кли­ентактиви­ровалобъект-сервервсегда, когдаобъект-сервервиден. Серверпринимаетуправлениепо однократномунажатию кнопкимыши - потому,что для активируемыхизнутри объек­товон уже за­пущензаранее.

Как можновидеть, архитектураОLEдостаточнобогата, а свя­зываниеи внедрение- лишьчасть общейструктуры.


1.3. Выбор иобоснованиеязыка программирования


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

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

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

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

4. Использованиеуже существующегокода, возможно,напи­санногона другом языкепрограммирования.

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

ВозможностиVisualBasic.

1.Все элементыпользовательскогоинтерфейсаможносозда­вать/модернизировать/удалятьбез всякойсвязи с алгоритмической"невидимой" частью программы.Все, что связанос взаимодейст­виемс человекомили другимсубъектомуправления,находится вфайлах форм (FRМ),VВХ и ОСХ, а все, чтосвязано с расчетнойчастью, - в файлахстандартных модулей (ВАS)и классов(СLS), или, если нужнаскорость обработки- в специально написанныхна С, Pascal,Fortran илидругих языкпрограммирования,DLL.Но это разнесениена самом делечисто условнои делаетсяпросто с це­лью облегченияработы самомуразработчику или, что болееважно, - групперазработчиков.На самом деле,при небрежномпроектированииили небольшойпоставленнойзадаче и интерфейс­наяи алгоритмическаячасть могутрасполагаться в одном модуле(FRМили ВАS).

2.Формированиепользовательскогоинтерфейсав VisualBasic похожена работус детскимконструктором- все элементына виду, всеэлементы просты,носложностьсоздаваемойконструкцииог­раниченатолько изобретательностьюразработчика.Причем надоиметь ввиду,что число элементовэтого конструкторапостоянно иочень быстрорастет. Сотни(на начало 1995 годаоколо тысячи)стороннихпроизводителейи фирм постоянновыбрасываютна ры­нок всеновые, болеемощные моделирасширениядля VisualBasic.

3.Если уже имеетсяготовый алгоритмБПФ (БыстрогоПреобра­зованияФурье)на ассемблереили алгоритмбыстрого поискав от­сортированномсписке на С илиPascal,не надо переписыватьих на VisualBasic. Достаточно оформить ихвиде DLLи использоватькак функции.

4.Можнос помощью VisualBasic для Windowsсоздавать запус­каемые“.EXЕ”файлы.VisualBasic для Windowsсоздает выполняе­мые (“.ЕХЕ”) файлы, ноне самодостаточные.Все программы, созданные наVisualBasic, должныраспространятьсяс файлом VBRUNx00.DLL (x - номер версии 1,2 или 3)илиVB400xx.DLL (xx - 16 или 32). Эта DLL обязательно должна присутствовать в каждой системе, где используютсяпрограммы наVisualBasic дляWindows.

VisualBasic дает возможностьсоздаватьприложения,рабо­тающиесреде Windows.Программы компилируютсяв псевдокод(р-коде) и помещаются в файлы с расширением “.ЕХЕ”. Когда программазапускается,файл с р-соdе обращаетсяк VBxxxx.DLL, котораяинтерпретируетр-codeв последовательностьинструкцийWindows АРI.

5. Использование функций WindowsАРIв VisualBasic до­вольно просто- необходимоее объявить(declare)всекцииобъяв­ленийили модуле кода.

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

6.Используемыймеханизм добавленияэлементовуправления VВХ( VisualBasic eXtension - модули расширенияVisualBasic) явилсобой "черный ход" для разработчиков третьих фирм по внедрениюсобственныхобъектов всреду разработкиVisualBasic. Механизм,пусть и необъектно-ориентированный, но позволяетпросто и довольноэлегантнымпутем добавлятьновые программ­ныекомпонентыбез дополнительногопрограммирования.Меха­низмVВХявляетсяспецифическиминтерфейсом для VisualBasic.

7.Существуетоткрытый стандартныйинтерфейс дляработы с программнымикомпонентами,в каждую программуи приложениеможно интегрироватьстандартныйнабор средств,позволяющийиспользоватьв дальнейшемданные программыв виде компонентдля будущихприложений.Механизм ОLЕ и новая технологияв виде ОСХ (ОLЕCustomControl).ОLЕне только предлагаетстандарт вопределенииобъекта, нотакже определяет,как и какимобразом объектымогут взаимодействоватьдруг с другом. /3 /

Основныеновшества вVisual Basic версии4.0

  • наличие 16- и32-разряднойредакции;

  • работа всреде Windows3.1, Windowsдля РабочихГрупп 3.11,Windows 95,Windows NТ;

  • возможностьсоздания ОLЕAutomationобъектов;

  • поддержкаOСХи VВХ;

  • расширениеТооlВох(Окно Инструментария)за счет ОLЕIn­sertableобъектов;

  • использованиеJЕТверсии 2.5;

  • наличие новыхи поддержкаспециализированныхDataBound Control (объектов,значительноупрощающихработу с базамиданных);

  • использованиеВАО версии2.0;

  • открытаяи расширяемаясреда разработки;

  • возможностьразбиениядлинных строкв программномкоде;

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

  • запуск одновременнонесколькихкопий VisualBasic 4.0;

  • директивыусловной компиляции;

  • поддержкафайлов-ресурсов;

  • создание32-разрядныхприложений;


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

ObjectBrowser (Инспекторобъектов).Данное средствопредназначенодля облегченияидентификациии управлениявсеми ОLЕAutomationServers, накоторыеесть ссылкив проекте. Выбрав нужный объект,разработчикможетлегковыбрать и передатькор­ректныйсинтаксисвыраженияработы с объектомв текст про­граммыили вызватьвстроеннуюпомощь дляданного объекта.

Встроенныйредактор.Увеличенафункциональнымощь встроенногоредактора.Во-первых, расширенывозможностина­стройки,точнее постройки,“насвой вкус”формата отображаемыхстрок кода, комментариев,ключевых слов,идентификаторов,точек останова,и т. д. Можно задатьразличныефонты, цветаи размеры фонтовдля облегчениячтения текстапрограммы.Во-вторых, улучшенаработа с отладочнымокном. Большенет необходимостидержать и окнос отлаживаемымтекстом программыи окно с ото­бражаемымипеременными- теперь достаточноиспользоватьодно окно, состоящее из двух подвижныхчастей: нижнееподокно пред­ставляетсобой полнофункциональныйредактор кода,верхнее жепоказываетсодержимоепеременных.

Расширениелексики языкапрограммирования.Дляобъ­явленияподпрограмми функций, доступныхили не доступныхиз других модулейпроекта, введены дополнительныеслужебные слова при объявлениипроцедур: Publicи Privateсоответственно.Visual Basic 4.0 “прихватил”теперь кусочекPascal,добавив ксвоемулексическомузапасу выражения“With”,”ForEach”, а также добав­леныновые типыданных - Byte(простое беззнаковое,для пред­ставлениячисел в диапазоне0-255), Вооlean16битовые(2-байта) числа,которые могутприниматьтолько двазначения:True или False)и Collection.Collection позволяетпостроитьсобственнуюгруппу пронумерованныхобъектов.ИспользованиеCollectionболее предпочтительно,чем использованиемассивов вследствиебольшей гибкостииндексов, иналичия наследуемыхметодов длявставляе­мыхи удаляемыхобъектов коллекции.

Процедурысвойств (propertyprocedures).Появиласьвоз­можностьсоздавать дляобъектов (форм,стандартныхмодулей и модулейклассов) собственныеспециализированныесвойства (properties),и привязыватьк ним выполняемыйкод, которыйбудет вызыватьсяпри обращениик свойству.

Расширяемостьоболочкипрограммирования.Оболочкаразработки(IDE)самого VisualBasic 4.0 такжеможет бытьуправ­ляемчерез ОLЕAutomation,что позволяетОLЕприложениямсозда­ватьи размещатьв специальноеменю Add-InVisualBasic 4.0 своикоманды,расширяя такимобразом возможностиIDE.

СозданиеОLЕObjekt приложенийи классы (Сlasses).Од­ной из основных претензий к VisualBasic со стороны профес­сиональныхпрограммистовслужилоотсутствиесредств созданияготовых модулейдля последующегоиспользования. Программист вынужден был обращаться к С, С++, Раsсаlили другимязыкам программированиядля созданияDLLивызовам функций DLLиз программына VisualBasic или,например, изприложенияMicrosoftOffice. С выходомVisualBasic 4.0 даннаяситуация кореннымобра­зом изменилась,программисты могут создать объекты ОLЕAutomation.Библиотекиподобных объектов, каждый со своимиха­рактеристикамии методамиуправления,могут быть использованыиз любого приложения,имеющего возможность контролироватьприложение,являющееся ОLЕобъектом(OLE Object Application).

По определению,такие объектыназваны классами(Claases) - (эту часть языкаVisualBasic взялот С++) и располагаютсяв специ­альныхмодулях (classmodule). Длясовместимостис программами,реализованнымив третьей версиии использующимиVВХ из стан­дартного набора, VisualBasic 4.0 включаетОLЕCustomControl (OCX), заменяющиеэтиVВХ.При вызовепроекта программы,раз­работаннойв среде предыдущей версии VisualBasic и использую­щейодин из стандартныхVBXпредложитавтоматическипреобра­зоватьссылки на новыеОСХ.Такие приложения,как MicrosoftEx­cel дляWindows,MicrosoftWord для Windowsи другие,являющиесяОLЕприложениями,теперьможно вставлятьв Окно Инструмента­рия(ТооlBох)как обычныеэлементы управления.

Таким образомможно сказатьоб некоторойуниверсальностиVisualBasic длясоздания приложенийдля Windows.

2. РАЗРАБОТКАСТРУКТУРНОЙСХЕМЫ И АЛГОРИТМОВПРОГРАММЫ


2.1. Функциональнаясхема работыWindows95


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

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

Windows95 обеспечиваетвзаимодействиес внешнимиустройствамикак с потокамиинформациинезависимоот самого устройствачерез своисобственныедрайвера устройств.

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

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

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

2.2. Используемаятерминология


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

В терминахVisualBasic все окнаесть формы, впрограмме может быть множествоокон-форм. Формыв программеслужат дляотображения элементовпользовательскогоинтерфейса.На каждой формеможет находитсянекотороеколичествоэлементовуправления,а также графикаи даже другие формы, причем,как вырожденныйслучай, на формеможет вообщене располагатьсяни одного элемента.

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

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

Любая,даже простейшаяпрограмма наVisualBasic, имеетсвой Проект(project),информациюо котором хранитсяв специальном файле. В проектпрограммы,отображаемомв специальномокне Проекта,помещаютсявсе формы, модулии файлы, совокупностькоторых и составляетпрограмму.

VisualBasic не являетсяобъектно-ориентированнымязыком вдогматическомпонимании ООП(объектно-ориентированноепрограммирование), VisualBasic базируетсянапарадигмесобытийно-ориентированногопрограммирования: программа -суть некийнабор реальногоили виртуальногомира, каждыйиз которыхпонимает некийограниченныйнабор событий(возможна,расширяемый).По приходу каждого событияиз набораотслеживаемыхсобытий формыи элементыуправлениямогут реагироватьопределеннымобразом, всоответствиис программнымкодом, реализованнымпрограммистомдля каждогообъекта.

Для внесенияуправляющегопрограммногокода для событийи методовиспользуетсяРедактор Кода,который служитдля создания,просмотра имодификацииподпрограмм(Sub)и функций (Function).Процедурапредставляетсобой подпрограмму,котораяне возвращаетрезультата.

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

Программныйкод может находитьсяв специальных программныхмодулях (стандартныемодули и модуликлассов) или быть “привязан”только к элементууправления(то есть объекту)или форме.

Кроме наборасобытий (events),для каждогоэлементауправлениясуществуетпредопределенный(возможно,расширяемый)набор свойствили характеристик(properties),представляющихсобой некиеначальныеустановки.Данные свойства разделяютсяпосфередоступности:естьсвойства, которыемогут устанавливатьсятолько в режимеразработки, только во времявыполненияпрограммы илив обоих случаях. Установкаи настройкасвойств объектовосуществляетсяв окне Свойств(Properties).

Для элементовуправленияи форм такжесуществуетсвязанный сними наборметодов (method),которые можнорассматриватькак набор команд,понимаемыхданным объектом.

Для некоторыхотображаемыхна экране элементовуправления есть возможностьзадавать различныеосновные цветаи цвета фона.Для удобствавыбора нужныхцветов используетсяЦветовая Палитра(ColorPalette).

2.3. Синтез общейструктурнойсхемы программы


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

Основнымзвеном программыявляется главнаяформа программы(Main_Form.frm)представляющаясобой главнуюинтерфейснуючасть программы.В которой происходятвсе преобразованияпроекта. Проектом,в контекстеданной программы,называетсясовокупностьдокументови функций OLEAutomation находящихсяв рабочей областипрограммы вопределенномвзаимодействиидруг с другом.Над которымимогут производитсяопределенныедействия посозданию,редактированию,удалению, запускуфункций и пр.Приводящиек изменениюкак самогопроекта в целом,так и простодокументоввходящих впроект.

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

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

Дочернимиформами поотношению кглавной формеявляются, формасоздания иредактированиясвойств документов(MakeDocForm.frm),форма созданияи редактированиясвойств функцийOLE Automation (MakeFunkForm.frm),форма созданияи изменениярегистрационныхданных приложенийподдерживающихOLEAutomation илидля которыхнеобходимаэмуляция этойподдержки(MakeDocForm.frm).

Форма созданияи редактированиясвойств документовсодержит всенеобходимыеэлементы управления(объекты) дляввода и измененияданных о документе,а также еговизуальномпредставлениив проекте (тоесть его иконки).Такжев этой формесодержитсяпрограммныйкод обрабатывающийэти элементыуправленияи вносящийизменения вглобальнуюструктуруданных о документахв проекте. Этаформа представляетсобой окно подназванием“Свойствадокумента”.

Форма созданияи изменениярегистрационныхданных приложенийтакже представляетсобой окно подназванием“Регистраторприложений”и также содержитв себе ряд объектов(элементовуправления)и программныйкод обрабатывающийэти элементыуправлениядля измененияданных о зарегистрированныхприложенияхкоторые могутучаствоватьв проекте вкачественепосредственныхобработчикахдокументов,а также в видефункции OLEAutomation.

Форма созданияи редактированиясвойств функцийOLE Automation представляетсобой окно“Свойствафункции”и содержитэлементы управленияпозволяющиередактироватьсвойства функцииOLEAutomation. Форматакже содержитпрограммныйкод модифицирующийглобальныеданные о функцияхв проекте.

Все глобальныеданные, а такжеподпрограммынеобходимыедля работыбольшинстваблоков программы и не входящие в какую либоформу содержатсяв специальноммодуле (MainModule),который несодержит в себеникаких объектови вообще визуальноне определяется.Он включаетв себя толькопрограммныйкод определяющийвсю структуруданных и хранитв себе данныео регистрацииприложений,свойств функцийи документов.А также данныенеобходимыедля нормальнойработы программыв целом. Както, различныепеременныепо средствомкоторых производитсяобмен даннымимежду различнымиформами и окнамивнутри самойпрограммы. Атакже модульвключает в себяподпрограммыи функции необходимыедля всего проектав целом. Напримерфункции открытияпроекта, сохраненияпроекта наносителе информациии т.д., которыене входят вкакую-либоформу и могутвызыватьсяиз любой частипрограммы.

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

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

2.4. Разработкаструктурнойсхемы взаимодействияпрограммы смеханизмомсвязыванияи внедрения


Для болеекачественнойразработкиалгоритмавзаимодействияпрограммы смеханизмомсвязыванияи внедренияобъектов Windows95, необходиморассмотретьфункциональнуюсхему работыOLEи системы OLEAutomation (рис2.3).

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

  • OLEServer - OLE серверэто приложениеобеспечивающеенекотороеколичествофункций

  • OLEClient (Controller) - OLEклиент(контроллер)является приложениемкоторое пользуетсяфункциями OLEAutomation OLE клиента

  • Windows95/NT являетсяпосредникоммежду клиентамии серверамиOLE обеспечиваяих взаимодействиечерез рядстандартныхпотоков и буферовобмена информациейOLE.

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

Windows95 являясьпосредникомво всех операцияхмежду клиентоми сервером,выполняеткоординирующуюроль администраторапри передачеданных. А такжеименно Windowsхранитинформациюо всех интерфейсахсерверов, здесьсуществуетструктурированноехранилище дляэтих целей.Также Windowsвыполняетрегистрациюэтих интерфейсови отвечает назапросы IIDот клиентов.Кроме тогоWindowsсодержитбуфер обменаинформациеймежду клиентоми сервером.Блок OLEAutomation производитнепосредственноесоединениесервера и клиентаи обеспечивает их взаимодействие.

Данные могутпередаватьсячерез буферобмена Widows,а также непосредственномежду методамии объектом, ноэтот способсчитается некорректнымпоскольку непозволяетперемещатьOLEобъект.

OLEклиент(контроллер)должен, кромеестественновызовов самихметодов OLE,обеспечиватькорректнуюобработку всехсообщений вобратном направлении(от сервера),Клиент состоитиз трех взаимосвязанныхчастей:блокзапроса IIDдля интерфейсаобъекта,блокобработки ОLEдокумента и самого OLEобъекта.Первая частьвыполняеттолько подготовительнуюфункцию, оназапрашиваетIIDинтерфейсдля конкретногообъекта у Windows95, получаетэтот интерфейси передает егодальше во второйблок. Во второмблоке проиходитсама обработкадокумента OLEобъекта.Именно в этомблоке обрабатываютсятакие событиякак активацияизвне и активацияизнутри. Применяяпри этом соответствующиеметоды обработкиэтих событийпо полученнымот первогоблока интерфейсы.По этим интерфейсамблок производитактивизациюметодов применяялибо уже заранееизвестнуюинформациюо параметрахметодов и ответнойреакции методовна их активацию,либо полученнуючерез интерфейсэту же информацию.Таким образомвоздействуяна объект иявляясь посредникомпри передачеинформациимежду методамисервера и объектом.

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

Такимже образом каки структураOLEклиента, должнавыглядетьструктурнаясхема той частиконтроллераавтоматическисвязываемыхобъектов, котораяотвечающаяза взаимодействиес механизмомсвязыванияи внедренияWindows95.

Поскольку,по сути, контроллердолжен являтьсяклиентом практическидля всех приложенийприсутствующихв системе, тоинформацияо OLEинтерфейсахотдельныхприложенийзаранее неизвестна. Поэтому эта информациядолжна бытьсобрана передвнедрениемконкретныхобъектов, тоесть в процессеработы программы.Это вносит своикоррективыв конкретнуюструктурнуюсхему взаимодействияпрограммы сOLE- добавляетсяблок сбора иинтерпретацииинформациио интерфейсахприложений(рис 2.4).

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

Таким образомпроизведенсинтез структурнойсхемы взаимодействияс механизмомсвязыванияи внедрения(OLE).

  1. Разработкаструктурыданных

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

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

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

Данные орегистрированныхприложениясостоят изследующихчастей:

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

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

  • имя файла- указатель назапускаемыйфайл приложениядля работы сним блока OLEAutomation;

  • имя приложения- собственноерасширенноеимя приложенияуказываемоедля удобстваработы с программой;

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

Данные одокументахнаходящихсяв проекте хранятсяв следующейструктуре:

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

  • описание- текст описывающийдокумент,составляетсяпользователем;

  • имя файла- путь и имя файладокумента;

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

  • имя приложения- имя приложениякоторое обрабатываетэтот документ(выбираетсяиз зарегистрированныхв программеприложенийили стандартныйобработчикWindowsдокумента стаким расширением);

  • иконка - путьи имя иконкидля визуальногопредставлениядокумента вокне проекта;

  • подпись -текст под иконкойдокумента вокне проекта;

  • координатыдокумента вокне проекта;

  • указателина исходящиеиз документафункции OLEв проекте.

Наиболееобъемнымиявляются данныео функциях OLEсодержащихсяв проекте, состоящиеиз следующихпеременных:

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

  • описание- текст описывающийфункцию, составляетсяпользователем;

  • имя файла- путь и имя файлафункции;

  • время созданияфункции;

  • функцияавтомата -вызываемыйметод;

  • имя приложения- имя приложениякоторое этуфункцию (выбираетсяиз зарегистрированныхв программефункций);

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

  • подпись -текст под иконкойфункции в окнепроекта;

  • координатыфункции в окнепроекта;

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

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

  • указателина исходящиефункции OLEв проекте;

  • указателина входящиефункции OLEв проекте;

  • указателина исходящиеиз функциидокументы;

  • указателина входящиев функцию документы;

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

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

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

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

  • переменныеобмена информации(определяющиесостояниебуфера обменаи структуруданных находящихсяв буфере обмена).

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

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

  1. Инструкцияпользователяпо работе спрограммой

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

После установкипрограммы надиск ее можнозапускать, дляэтого нужналишь дваждыщелкнуть наиконке программыили в главномменю Windows(“Пуск”)выбрать пункт“Выполнить”и изменить путьдо исполняемогофайла до запускаемогофайла контроллера- Controller.exeи нажать кнопку“ОК”.После чегопрограммазапуститсяи на экранепоявится главнаяформа программы(окно).

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

Основноеокно программысостоит израбочей областии меню, а такжеменю появляющеесяпри нажатииправой кнопкимыши (рис. 3.1).

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

Системаниспадающихменю позволяетоперативноуправлятьпроцессомпроектирования.Меню “Файл”состоит изпунктов открытияпроекта, сохраненияпроекта, открытиенового проекта,выхода из программы.Меню “Правка”позволяетпосредствамбуфера обменаинформациейобмениватьсяинформациеймежду проектами,а также изменятьтекущий проект, копироватьобъекты в буферобмена и изнего, удалятьчасть объектов(рис 3.2).

Меню “Создать”кроме непосредственнопрямого выборав линейке меню,через меню“Правка”,можно получитьнажав правуюкнопку мыши,из него можновыбрать объект(документилифункциюOLE,илизарегистрироватьприложениеOLE Automation)которыйнеобходимосоздать.После выбораобъекта запускаетсяредактор свойстввыбранногообъекта (рис.3.3).Как видно изиллюстрации,в этих формахвсе свойстваописаны непосредственнов форме.

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

Заполнивэти формы создаетсязаданный объекткоторый можноперемещатьуказателеммыши. Правойкнопкой мышиможно черезвозникшее менювсегда изменитьсвойства объекта(выбрав “Свойства”).

Кроме тогоиспользуетсяследующиеспособы управленияобъектамисозданнымив процессепроектирования.Возможно объединениеобъектов вгруппу, дляэтого нужнонажав левуюкнопку мышине отпускаяобвести теобъекты которыеобъединяютсяв группу, при отпусканиикнопки объектывыделятся врамку. С этимивыделеннымиобъектамивозможно теперьвыполнятьгрупповыеоперации(перемещения,удаления копированияи т.д.) через меню“Правка”или по правойкнопки мыши.

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

После работыс конкретнымдокументомвырабатываетсясобытие “Документбыл изменен”которое должныобрабатыватьвсе исходящиеиз документафункции OLE(если конечноу них был установленфлаг свойства“Автоматическоевыполнениефункции приизменениивходного документа”).Что влечет засобой выполнениеэтих функций,то есть изменениедокументовисходящих изфункции, чтов свою очередьможет повлечьза собой выполнениедругих функций.Процесс можетстать циклическим(если входныедокументы будутизменены исходящимифункциями).Чтобы этогоне произошлонеобходимопользоватьсяфлагом “Запроспользователяперед выполнением”в свойствахфункции OLE.Установка этогофлага повлечетсобой запроспользователюо необходимостивыполненияэтой функцииперед ее выполнением.Тем самымпредоставляетсявозможностьпользователюзациклитьпроцесс обратнойсвязью, чтоиногда необходимо(например, дляподбора нужноготепловогорежима), а затемпрервать его.

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

Если необходимостьв программеконтроллераотпала, то ееможно удалитьс диска. Однакопрограммаконтроллеране снабженаспециальнымфайлом унинсталляции,как это требуетстандарт программдля Windows95, посколькудля созданияэтого файлапрограммистунеобходимодоскональнознать всю системуWindows,что сейчас принедостаткеинформациио Windows(т.к. эта системаявляется относительноновой) в нашихусловиях невозможно.По этому дляудаления программыс носителякроме удалениясамой директориипрограммыконтроллеранеобходимоудалить всеDLL-файлыиз директорияWindowsсамостоятельно.Список всехфайлов программыприведен вприложении.

  1. КОНСТРУКТОРСКИЕРАСЧЕТЫ

  1. Показателинадежности

Основнымиконструкторскимирасчетами дляЭВА, являютсярасчет надежностиустройстваи расчет прочностипечатной платы.Рассмотрим теоретическоеоснование этихконструкторскихрасчетов.

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

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

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

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

Показателинадежностинеремонтируемыхсистем базируютсяна понятияхфункций надежностиР(t)и функцииотказа Q(t),связанныхзависимостьюP(t)= 1- Q(t). Обеони зависятот времениt.

Вероятностьюбезотказнойработы P(t)называют вероятностьтого, что в заданноминтервалевремени илипределах заданнойнаработки ti отказовв системе невозникает, т.е.P(ti)= P(T>ti),где Т - случайнаявеличинахарактеризующаявремя наработкисистемы до возникновенияв ней отказа.Соответственновероятностьювозникновенияотказа в системе Q(ti)называетсявероятностьтого, что в периоднаработки tiв ней обязательнопроизойдетотказ, т.е. Q(ti)= P(Ti).

Теоретическоезначение вероятностибезотказнойработы ЭВАудобно определитьследующимобразом :

(4.1),

где

N1i- числоизделий, отказавшихво время испытанийна i-том интервалевремени;

m= t /

t - числоинтервалов

t- времяиспытания

t - продолжительностьинтервалавремени

По аналогиис (4.1) статистическая вероятностьбезотказнойработы ЭВА

(4.2),

Естественно,чем больше N,тем более точнособлюдаетсяравенства, итем точнеестановятсязначения величинP(ti)иP’(ti).

Вероятностьбезотказнойработы можетбыть определенаи для произвольногоинтервалавремени (t1 ;t2),т.е. не с моментавключениясистемы. В этомслучае говорятоб условнойвероятностибезотказнойработы системы P(t1 ;t2) в период(t1 ;t2),имея в ввиду,что в моментвремени t1системанаходится вработоспособномсостоянии.Условная вероятностьP(t1 ;t2)определяетсясоотношением

P(t1 ;t2)=P(t2)/ P(t1) (4.3)

где

P(t1)и P(t2)- соответственнозначения функцийнадежностив начале и конценаработки.

Плотностьюраспределениянаработки доотказа f(t)называютпроизводнуюпо времени отфункции отказаQ(t):


(4.4)

Из (4.4) следует,что величинаf(t)dtхарактерезуетбезусловнуювероятностьтого, что системаобязательнооткажет в интервалевремени (t ; t+dt)при условиичто вмоментвремени tона находиласьв работоспособномсостоянии.

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

(t)представляетсобой условнуювероятностьвозникновенияотказа в системев некоторыймомент временинаработки приусловии, чтодо этого моментаотказов в системене было. Величинаинтенсивностиопределяетсяотношением:
(t)= f(t)/ P(t). Приблизительноее можно оценитьследующимотношением:

,

где

N1- числоизделий, отказавшихпри испытанияхв течении времени

t

N- числоизделий, работоспособныхк началу испытаний.


Условнаяработоспособностьсистемы в моментначала наработкиможно записатьв виде P(0)= 1. Тогдаиз (4.3) и (4.4) следуетчто


Аналогичноможет бытьопределенаусловная вероятность



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

В качествепоказателянадежностииспользуютсреднюю наработкудо отказа tcp.Средняя наработкадо отказапредставляетсобой математическоеожидание M(t)случайнойвеличины t


Вид функцийf(t)и P(t)определяетсяконкретнымизаконамираспределенияслучайнойвеличины t.Средняя наработкадо отказа - этоожидаемое времяисправнойработы системыдо первогоотказа. Приближенноее можно оценитьтак:


,

где

tcpi =(ti-ti-1)/ 2

(ti;ti-1)- времяв начале и концеi-тогоинтервала.


Таким образоммы рассмотрелиосновные показателинадежностисистем./4 /

4.2. Методикарасчета надежности


На практикечаще всегоиспользуетсяэскизный(ориентировочный)полный расчетнадежностиэлектроннойаппаратуры.Расчет надежностинерезервируемойсистемы состоитв нахожденииобщей интенсивностиотказов, наработкина отказ Тсри вероятностибезотказнойработы P(t).Эскизный расчетнадежностинерезервированнойсистемы можнопроводить вследующемпорядке :

  1. все элементысистемы разбиваютсяпо группам содинаковымиили близкимиинтенсивностямиотказов иподсчитываетсячисло элементовNв каждой i-тойгруппе;

  2. по таблицамприведеннымв /4/определяютзначенияинтенсивностиотказов

    для элементовi-тойгруппы;
  3. рассчитываютинтенсивностьотказов системыкак суммупроизведенийNi,

    cучетомпоправочногокоэффициента

,

где

m- общее количествогрупп

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

  1. определяютнаработку наотказ

;
  1. рассчитываютзависимостьвероятностибезотказнойработы системыот времени поформуле


;


Таким образомпроизводитсярасчет надежности.

4.3. Методикаопределениямеханическойпрочности ПП


На ПП, какправило, устанавливаетсянесколькодесятков интегральныхсхем (ИС) иэлектроэлементов(ЭРЭ)

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

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

Для нахождениядействующихна плату силможно предложитьследующийалгоритм.


  1. ОпределяемкоординатыХi,Yi,i-хэлементов наплате - раастояниеот осей до центратяжести элементов(мм)

  2. Определяемравнодействующуюприложенныхк плате сил

где

Рi- силатяжести i-тогоэлемента, Н;

к - количествоэлементов, шт.


  1. Находим общийцентр тяжестиприложенныхсил

и
(4.5)

где

Xiи Yi- координатыцентра тяжестиплаты, мм.

  1. Определимсилу. Действующююна плату:

, (4.6)

где

а - ускорение,воздействующеена плату

  1. Рассчитываемреакции в опорах:

(4.7)
(4.8)

где

l- расстояниемежду опорами

  1. Вычисляеммаксимальныйизгибающиймомент:

Mmax = RAXC(4.9)

  1. Определяемкрутящий моменткрутящий момент:

Mk= Qd, (4.10)

где

d- величинасмещения центратяжести от осисимметрии платы

(4.11)

где

b- ширина платы

  1. Находимнапряжение,вызываемоев плате крутящиммоментом :

(4.12),

где

h- толщина платы

- коэффициентпрочности,равный 0.333.
  1. Проверяемвыполнениеравенства


(4.13)

где

-максимальнодоупстимоенапряжениев плате

Если неравенство(4.13) выполняется,то следуетзаключить, чтоприложенныенагрузки неприведут кповреждениюплаты. В случае,если неравенство (4.13) не выполняется,нужно предусмотретьмеры, необходимыедля дополнительногокрепленияплаты.

4.3. Методикарасчета собственныхколебаний блока


Расчет частотысобственныхколебаний блокаможно привести,заменив конструкциюего эквивалентнойрасчетнойсхемой в видеблочной схемы /5/.

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


, (4.14)


где

а - длина пластины,м;

D- цилиндрическаяжесткостьпластины

, (4.15)

Е - модульупругости;

- коэффициентПуассона;

q- ускорениесвободногопадения;

-плотностьматериала

- коэффициент,значение которогозависит отспособа закреплениясторон пластины

Для удобствапользованиявыражение(4.14) приведем квиду :


,(4.16)

где

В - частотнаяпостоянная,зависщая отспособа закрепленияпластины


Если пластинане стальная,а выполненаиз какого-либодругого материала,то в (4.16) вводитсяпоправочныйкоэффициентkMна материал

где

Е и

- модуль упругостии плотностьприменяемогоматериала;

ЕСи

С- модуль упругостии плотностьстали.

Для учетанагрузки прираспределеннойнагрузке вводятпоправочныйкоэффициентмассы элементов

,

где

QЭи QЭ- массапластины имасса элементов,равномернораспределенныхпо пластине;

Таким образомвыражение(4.14) для определениячастоты собственныхколебанийприобретаетвид

(4.17)

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

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


, (4.18)

где

jmax- вибрационныеперегрузки

b- размеркороткой стороныплаты

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

4.5.Расчетная часть


В расчетнойчасти проектав качествепримера конструкторскогорасчета какой-либоконструкторскойединицы представимконструкторскийрасчет платыусилителяимпульсов (УИ).


5. БЕЗОПАСНОСТЬИ ЭКОЛОГИЧНОСТЬПРОЕКТА


  1. Анализбезопасности труда конструктора оператораЭВМ

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

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

Помещениемашинного залаВЦ представляетсобой однукомнату (рис5.1) площадью 42кв.м. (7 x 6 М).В нем размещены8 персональныхкомпьютеровIBM (один из нихзанят под сервер),каждый из которыхзанимает одинстол. Операторзанимает однорабочее местоу компьютера.

Следовательно,площадь одногоиндивидуальногорабочего местаравна 6 кв.м., что соответствуетустановленнымсанитарным нормам СНиП4559-88 (не менее 6 кв.м.).В соответствиис нормами расстояниемежду торцамистолов превышает80 см, между столоми стеной илиокном - 60 см, междудлинными сторонамистолов - 90 см.

Санитарныенормы СН 512-78устанавливаютвысокие требованияк микроклиматическимусловиям впомещенияхВЦ:

Температуравоздуха нарабочем месте

в теплыйпериод года+20...+25 С

в холодныйпериод года+18..+20 С.

Относительнаявлажность 40 -60 % .

В помещенияхВЦ поддерживаетсяслегка избыточноедавление воздуха(приблизительнона 30 Па вышеатмосферного)для препятствияпопаданиявоздуха с пыльюснаружи. Крометого, при повышенномдавлении воздухаулучшаетсяотвод теплаот элементовЭВМ.

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

Для обеспеченияперечисленныхтребованийпо параметрамвоздушной средына ВЦ обычноиспользуютсяустановкикондиционированиявоздуха. Этодва кондиционераБК1300, встроенныев оконные проемы.

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

Аэродинамическийшум возникаетпри движенииохлаждающеговоздуха вкондиционерахи внутри каждогоперсональногокомпьютера.Электромагнитныйшум создаютразличныеэлектронныеустройства:строчныетрансформаторыв мониторах,импульсныеблоки питания.Ультразвуковойшум вызван восновном вибрациями преобразователейнапряженияв импульсныхблоках питанияи генераторамистрочной разверткив дисплеях.Частоты шумовот 16000 до 30000 Гц.

Так как усовременнойвычислительнойтехники уровеньсобственныхшумов значительноснижен (это нераспространяетсяна печатающиеустройства),общий уровеньшума в помещениинизок - порядка50 дБ (что не превышаетдопустимойвеличены поГОСТ 12.1.003-83) и специальныесредства сниженияшума не применяются.

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


(5.1),

где

k1 - коэффициентпропорциональности,характеризующийвероятностьторможенияэлектроновв электрическомполе ядра, k1=

;

k2 = 1/Q, гдеQ- скважностьпульсирующегонапряжения,k2=1/4=0.25;

U -напряжениеанода,U =12кВ;

I - анодный ток,I =5мА;

Z - атомный номеранода,Z =14;

m -коэффициентпоглощенияизлучения ввоздухе,m =10;

N -коэффициентослабленияизлучения колбой ЭЛТс сопротивлениемпроводящегослоя менее12 Ом/см ,N=10;

R -расстояниеот анода дорассматриваемойточки5см от стороны,обращеннойк операторуплюсрасстояниеот анода доэкрана,R=30см;

10 -эквивалентватта(эрг/с);

0.114-эквивалентрентгена(эрг/см).

Подставивзначения вформулу (5.1)получаем:

A/кг

Тогда какпо ГОСТу12.2.018-76 мощностьэкспозиционнойдозы на расстоянии5 см от экранадисплея неболее

А/кг.

В условияхработы на ВЦможно выделитьнесколькоисточниковэлектромагнитногоизлучения:

низкочастотноеизлучение -50-60 Гц

трансформаторыблоков питания,электропроводка,

кадроваячастота дисплеев;

частоты от16 кГц до 4 МГц:

вызваныработой электронно-лучевыхтрубок дисплеев;

высокиечастоты - от 8до 25 МГц :

тактовыечастоты процессоров.

Все источникиэлектромагнитныхизлучений нарабочих местахв ВЦ ниже предельнодопустимыхзначенийнапряженности(ГОСТ12.1.006-88). Однако,обслуживающийперсонал находится под их воздействиемдлительноевремя, что вынуждаетприменятьспециальныесредства экранировкидисплеев. Дляэтого используютсяспециальныепрозрачныеэкраны из тонкойметаллическойсетки.

Кроме того,эти экраны неотражают внешнийсвет и повышаютконтрастностьизображенияна дисплее.

Естественное освещение примененоодностороннеебоковое, общаяплощадь оконныхпроемов 5.04 кв.м.На окнах используютсясветлые светорассеивающиешторы.

Искусственноеосвещениеобеспечивается7-ю потолочнымилюминесцентнымисветильникамитипа ШОД.

Режим работынейтрали источникапитания сетиопределяетсясистемойэнергоснабжения,принятой вместе расположенияВЦ. Сеть используетсяоднофазная,напряжение220 В. Для питаниякомпьютера-серверакомпьютернойсети установленблок бесперебойногопитания мощностью600 Вт. ПомещенияВЦ оборудованыконтуром-шинойзащитногозаземления,электрическисоединенной с заземлителем.Все подлежащиезаземлениюэлементы ЭВМ присоединяются к контуру-шинеотдельнымизаземляющимипроводниками.

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

Наиболее неблагоприятным фактором, влияющимна оператораЭВМ являетсяпсихологическаянагрузка./ 6 /

5.2. Расчетосвещенности


Для работыв лабораторииприменяетсясовмещенныйтип ос­вещения:боковоеодностороннееестественноеосвещение вдневное времяи общее искусственное в вечернеевремя.

Уровеньосвещенностисогласно СНиПII-4-79для зрительныхработ высокойточности (от0.3 до 0.5 мм) составляет: освещенностьпри боковоместественномосвещении -2 %,освещенностьпри искусственномосвещении -220лк.

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

Расчетестественногоосвещениязаключаетсяв определенииплощади световыхпроемов всоответствиис нормированнымзначением КЕО.

На основанииСНиП II-4-79,приложение5, рассчитываемплощадь световыхпроемов прибоковом освещении,при нормируемомКЕО =2%, по следующейформуле :

, (5.2)

где

S0-площадьсветовых проемовокон при боковомосвещении, М2;

Sn-площадьполя освещения,Sn=42М2;

lH-нормируемоезначение КЕО,lH=2;

k3-коэффициентзапаса,k3= 1.2;

h0-световаяхарактеристикаокон, h0= 9.6 при двойномстекле;

k3Д-коэффициентзатемненияокон противостоящимизданиями;

r0-общийкоэффициентсветопропусканияокон, учитывающийкоэффициентпропусканиястекол;

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

Согласноформуле (5.2)имеем :

,

откуда S0= 5.04 М2;

Знаяобщую площадьсветовых проемов,рассчитываемразмеры одногоокна и их количество.Примем высотуокна равную1.5 М, тогда общаядлина оконсоставляет:

а = 5.04 /1.5 = 3.36 M

отсюда приколичествеокон N= 2 , длинакаждого окна будет составлять:

b =1.68 M

Из расчетавидно, что дляобеспеченияестественногоосвещения, принормируемомКЕО = 2 %, используются2 окнаразмерами а= 1.5и b =1.68,что соответствуетдействительностив исследуемойлаборатории.

Для расчетаисскуственногоосвещениянайдем общийсветовой потокдля лабораториипо формуле:

,(5.3)

где

r - коэффициентиспользованиясветовогопотока, r=0.4;

E min- наименьшаяосвещенность,Emin= 200 лк;

k -коэффициентзапаса,k =1.5;

S-площадьпомещения, S=42 М 2;

Z-коэффициентпереходаот наименьшейк среднейосвещенности,для светильниковравномерногоосвещенияZ=1.1;

Вычисляемпоказательпомещения:

,(5.4)

где

h - высотапомещения, 3 М;

A иB-длина и ширинапомещения, М.

Принимаякоэффициентотражения отпотолка PП = 70%и от стен PC= 50 %,по таблицеопределяемзначение коэффициентаr,как функцииот PП, PCи j: r =1.2.Отсюда, общийсветовой потокравен(по формуле5.3 ):

лк

Определяемобщее количестволамп:

шт.

Необходимоеколичествосветильниковопределим поформуле:

шт.

Расчет показал,что для лабораториинеобходимо7 светильников.Для этого выбраныпотолочныесветильникитипа ШОД слюминесцентнымилампами, какболее экономичныепо сравнениюс лампами накаливанияи имеющимиспектр близкийк дневному.

  1. Возможностьчрезвычайныхситуаций

Специальностьоператора ЭВМотносится кпрофессиямс низкой степеньюриска. Основнымиисточникамиопасности нарабочем местеоператора ЭВМявляется опасностьвозникновенияпожара, опасностьполучениятравмы и опасностьпораженияэлектрическимтоком.

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

Травмы операторамогут произойтивследствиелибо механическихтравм, либопораженияэлектрическимтоком. Механическиетравмы операторамогут произойтив случае:

  • либо падениякакого-либоприбора;

  • либо падениясамого оператора;

  • из-за взрывакинескопамонитора (каксамого взрывоопасногоприбора влаборатории).

Поражениеэлектрическимтоком возможнопо причинам:

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

  • касанияоператоромоголенногопровода (причинойкоторого являетсяналичие оголенногопровода в сочетаниис нарушениемтехники безопасности).

А возникновениепожара, в своюочередь, следуетиз наличиягорючего материалав ВЦ и возникновенияочага воспламенения.Очаг воспламененияможет возникнутьв следствииследующихпричин:

  • курениеоператора нарабочем месте,которое являетсяследствиемнервногоперенапряженияв сочетаниис нарушениемтехники безопасности;

  • перегревапроводов вследствииперегрузкипроводов током;

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

Таким образомбыл произведенсинтез деревапричин чрезвычайныхситуаций нарабочем месте.

5.4.Пожарная безопасность


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

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

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

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

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

Для ликвидациивозникшегопожара в начальнойстадии применяютпервичныесредствапожаротушения- ручные огнетушители.Это углекислотныеогнетушителиОУ-2 и порошковыеогнетушители ОП-1-01. Эти типыогнетушителейпозволяюттушить электроустановкидо 1000 В, находящиесяпод напряжениеми не причиняютбольшого вредаэлектроннойтехнике.

В соответствиисо СНиП II-90-81 категориюпроизводствапо пожарнойопасности можноотнести к группеВ, так как впомещенияхне производятсяработы слегковоспламеняющимисяжидкостями и горючимигазами. Степеньогнестойкостиосновных строительныхконструкцийлабораторииможно отнестик I степени согласноСНиП II-2-80.

5.5. Экологичностьпроекта


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

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

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

Работа спроектом, какв прочем и совсей вычислительнойтехникой, требуетповышенноговнимания состороны человека,а по этому сопряженас повышеннымвоздействиемпсихофизиологическихфакторов (умственноеперенапряжение,перенапряжениеанализаторов,эмоциональныеперегрузкии т.д.). Рекомендую,вследствиеэтого, изменитьрежим работыоператоров.При этом применятьболее короткие,но частые перерывыв работе дляфизическихупражнений.А также перерывыдля психологическойразгрузки(рекомендуетсясмена занятия,например применитьдинамическиеобучающие игрытипа “Quake”или “RedAlert”).

ЗАКЛЮЧЕНИЕ


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

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

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

СПИСОКИСПОЛЬЗОВАННЫХИСТОЧНИКОВ


  1. Microsoft Windows 95.Руководствопользователя/Подред. Д.В. Егорова.М.: М.П.“Эрус”,1996. - 153 с.


  2. ЛоуренсХаррис. ПрограммированиеOLE. Освойсамостоятельноза 21 день. пер.с англ. - М.: Бином,1995. - 464 с.


  3. АРУШАНОВХ.Р. Visual Basic3.0, Visual Basic 4.0 дляWindows.М.: Красныйпролетарий,1996. - 348 с.


  4. Яншин А.А.Теоретическиеосновы конструирования,технологиии надежностиЭВМ. М.:Радио исвязь, 1983, 312 с.


  5. ПреснухинЛ.Н., Шахнов В.А.Конструированиеэлектронныхвычислительныхмашин и систем.- М.:Высш. шк., 1986, -512 с.


  6. Павлов С.П.,Губонина З.И.Охрана трудав приборостроении:Учебник длявузов/Под ред. А.Г.Алексаняна.-М.:Высшая школа,1986.- 215 с.


ГОСУДАРСТВЕННЫЙКОМИТЕТ РОССИЙСКОЙФЕДЕРАЦИИ

ПО ВЫСШЕМУОБРАЗОВАНИЮ

ТАГАНРОГСКИЙГОСУДАРСТВЕННЫЙРАДИОТЕХНИЧЕСКИЙУНИВЕРСИТЕТ


ПОЯСНИТЕЛЬНАЯЗАПИСКА

К ДИПЛОМНОМУПРОЕКТУ


Разработкапрограммыконтроллераавтоматическисвязываемыхобъектов дляуправленияконструкторскойдокументациейв средеWindows 95/NT (дипломная_работа).              

Название

 ЦТРК 5.035.014ПЗ 

обозначение


   СорокинЮрий Владимирович   

(фамилия,имя, отчестводипломника)


ФАКУЛЬТЕТЭЛЕКТРОНИКИ И ПРИБОРОСТРОЕНИЯ

КАФЕДРАКЭС


группа Э-92


ДАТА ЗАЩИТЫ14>>  апреля  1997г.


Отзыв


на дипломнуюработу студентагр.Э-92 СорокинаЮ.В. “Разработкапрограммыконтроллераавтоматическисвязываемыхобъектов дляуправленияконструкторскойдокументациейв среде Windows95/NT”.

Широкое использованиевычислительнойтехники в народномхозяйстветребует увеличенияпроизводстваи разработкиновых технологийее изготовления.Это возможнотолько прииспользованиисовременныхсредств проектированияна основекомпьютернойтехники. С этойточки зрениятема дипломнойработы безусловноактуальна.

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

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

Результатыработы иллюстрируютсяна конкретныхпримерахконструкторскимирасчетами.

Также в дипломеотражены вопросыохраны труда.


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

Дипломнаяработа можетбыть оцененаоценкой “отлично”,а Сорокин ЮрийВладимировичзаслуживаетприсвоенияквалификации“инженерконструктор-технологЭВС”.


10.04.97

к.т.н, доцент /КосторниченкоА.И./


ПРИЛОЖЕНИЯ


ПРИЛОЖЕНИЕ I

ПРИЛОЖЕНИЕ II


ПРИЛОЖЕНИЕ II I


ПРИЛОЖЕНИЕ IV


СПИСОКФАЙЛОВ ПРОГРАММЫКОНТРОЛЛЕРА


vb32.exe

vb40032.dll

vb4stp32.dll

vba232.dll

vba32.dll

vbajet32.dll

vbar2132.dll

vbar2232.dll

vbaru32.dll

vbdb32.dll

vbide32.dll

vbrun300.dll

vbs.dll

vbscript.dll

defdoc.ico

pro1.prj

temp.prj

Сontroller.exe


Видэкрана графическойоперационнойсистемы



Рис1.1.




Функциональнаясхема работысистемы Windows95.



Структурнаясхема программы

Функциональнаясхема работыOLEи системы OLEAutomation

Структурнаясхема взаимодействияпрограммы

смеханизмомOLE

Структураданных главногомодуля




Планпомещениявычислительногоцентра.





1

11

10


2



3 4


9


5 6




7 8


1- 7 -Рабочие местаоператоров

8-Сервер

9,10-Окна

11-Вход

Рис5.1.


Нормированиеминимальногозначения КЕОпри одностороннем боковом освещении






1-уровень рабочейповерхности(0.8М);

2-кривая, характеризующаяизменение КЕОв плоскостиразреза помещения(lHmin =2%)


Рис.5.2


Деревопричин чрезвычайныхситуации

СОДЕРЖАНИЕ


Введение                                                                     7

1. АНАЛИЗТЕХНИЧЕСКОГОЗАДАНИЯ                     10

1.1.Выбор и обоснованиеоперационнойсистемы          10

1.2.Анализ механизмасвязыванияи внедрения              27

1.3.Выбор и обоснованиеязыка программирования       36

  1. РАЗРАБОТКА СТРУКТУРНОЙ СХЕМЫ И 

АЛГОРИТМОВПРОГРАММЫ                                      43

2.1.Функциональнаясхема работыWindows95              43

2.2.Используемаятерминология                                    47

  1. Синтезобщей структурнойсхемы программы          50

  2. Разработкаструктурнойсхемы взаимодействияпрограммыс механизмомсвязыванияи внедрения       54

  3. Разработкаструктурыданных                                   59

  4. Инструкцияпользователя

по работе с программой                                      64

4.КОНСТРУКТОРСКИЕРАСЧЕТЫ                              71

  1. Показателинадежности                                            71

  2. Методикарасчетанадежности                                  76

  3. Методикаопределениямеханической

    прочности ПП                                                               78

  4. Методикарасчета собственныхколебанийблока       81

4.5.Расчетнаячасть                                                         84

  1. ВОПРОСЫОХРАНЫ ТРУДАИ

  ОКРУЖАЮЩЕЙ СРЕДЫ                                           88

5.1.Анализ условий труда на рабочем местеконструктора оператораЭВМ                                  88

  1. Расчетосвещенности                                                94

  2. Возможностьчрезвычайныхситуаций                      99

  3. Пожарнаябезопасность                                           102

  4. Экологичностьпроекта                                           104

ЗАКЛЮЧЕНИЕ                                                            105

СПИСОКИСПОЛЬЗОВАННЫХИСТОЧНИКОВ         106

ПРИЛОЖЕНИEI                                                          108

ПРИЛОЖЕНИEII                                                         112

ПРИЛОЖЕНИEIII                                                        114

ПРИЛОЖЕНИEIV                                                        133


‘*****************************

‘ MainModule Code

‘*****************************

OptionExplicit

OptionBase 0

PublicMenuFrom As Integer

PublicCanceled As Boolean

PublicSelectOn As Boolean

PublicSelectIs As Boolean

PublicImageCo As Integer

PublicMouseX As Integer

PublicMouseY As Integer

PublicTotalDocCo As Integer

PublicTotalFunCo As Integer

PublicTotalRegCo As Integer

PublicCurDocument As Integer

PublicCurFunction As Integer

PublicDocumentIsChanged As Boolean


PublicType RegistrationType

TotalNumberAs Long

DiscriptionAs String

FileNameAs String

NameAppAs String

FileMaskAs String

End Type

PublicRegistrations() As RegistrationType

PublicRegistrationCo As Integer


PublicType DocumentType

TotalNumberAs Long

FileNameAs String

CreateDateTimeAs String


UsedProgrammAs Long

DiscriptionAs String

ImageIconAs String

ImageTextAs String

X AsInteger

Y AsInteger


OutputFunPoints()As Integer

OutputFunPointCoAs Integer

OutputDocPoints()As Integer

OutputDocPointCoAs Integer

End Type

PublicDocuments() As DocumentType

PublicDocumentCo As Integer


PublicType FunctionType

TotalNumberAs Long

FileNameAs String

CreateDateTimeAs String

Path AsString

UsedProgrammAs String

AutomatFunctionAs String

AutoExeFlagAs Boolean

AskBeforeExeAs Boolean


DiscriptionAs String

ImageIconAs String

ImageTextAs String

X AsInteger

Y AsInteger


DocumentsAndFunctionsLink As String

InputDocPoints()As Integer

InputDocPointCoAs Integer

OutputDocPoints()As Integer

OutputDocPointCoAs Integer

InputFunPoints()As Integer

InputFunPointCoAs Integer

OutputFunPoints()As Integer

OutputFunPointCoAs Integer

End Type

PublicFunctions() As FunctionType

PublicFunctionCo As Integer


Public SubShowDocumentProperty(DocNumber As Integer)

On ErrorGoTo Err1

MakeDocForm.Label4(0).Caption =FileLen(Documents(DocNumber).FileName)

MakeDocForm.Label4(1).Caption =FileDateTime(Documents(DocNumber).FileName)

MakeDocForm.Label4(2).Caption =Documents(DocNumber).CreateDateTime

MakeDocForm.IconText.Text =Documents(DocNumber).ImageText

MakeDocForm.IconImage.Picture =LoadPicture(Documents(DocNumber).ImageIcon)

MakeDocForm.ImageIconText.Caption =Documents(DocNumber).ImageIcon

MakeDocForm.Discrip.Text =Documents(DocNumber).Discription

MakeDocForm.DocumentName = Documents(DocNumber).FileName

IfDocuments(DocNumber).UsedProgramm = -1 Then

MakeDocForm.Combo1.ListIndex = RegistrationCo + 1

Else

MakeDocForm.Combo1.ListIndex =GetREGIndex(Documents(DocNumber).UsedProgramm)

End If

Exit Sub

Err1:

SelectCase MsgBox("Произошлаошибка припопытке считатьфайл.", vbAbortRetryIgnore + vbCritical)

CasevbAbort

End

CasevbRetry

Resume0

CasevbIgnore

EndSelect

End Sub

Public SubSaveRegCards()

DimFileNumber As Integer

Dim a AsInteger

On ErrorGoTo Err1

FileNumber= FreeFile

OpenApp.Path & "\RegisterCards" For Output As FileNumber

Write#FileNumber, TotalRegCo, RegistrationCo

For a =0 To RegistrationCo

WithRegistrations(a)

Write#FileNumber, .TotalNumber, .Discription, .FileName, .NameApp,.FileMask

End With

Next a

CloseFileNumber

Exit Sub

Err1:

SelectCase MsgBox("Произошлаошибка припопытке записатьфайл регистрации."_

&Chr(13) & Chr(10) & Err.Number & Chr(13) & Chr(10) &_

Err.Description, vbAbortRetryIgnore + vbCritical)

CasevbAbort

End

CasevbRetry

Resume0

EndSelect

End Sub

Public SubMemberDocumentProperty(DocNumber As Integer)

Documents(DocNumber).ImageText =MakeDocForm.IconText.Text

Documents(DocNumber).ImageIcon =MakeDocForm.ImageIconText.Caption

Documents(DocNumber).Discription =MakeDocForm.Discrip.Text

Documents(DocNumber).FileName =MakeDocForm.DocumentName.Text

Documents(DocNumber).CreateDateTime =MakeDocForm.Label4(0).Caption

IfMakeDocForm.Combo1.ListIndex = RegistrationCo + 1 Then

Documents(DocNumber).UsedProgramm = -1

Else

Documents(DocNumber).UsedProgramm =Registrations(MakeDocForm.Combo1.ListIndex).TotalNumber

End If


End Sub


Public SubSaveProject(ProjectName As String)

DimFileNumber As Integer

Dim a AsInteger

Dim b AsInteger

On ErrorGoTo Err1

FileNumber= FreeFile

OpenProjectName For Output As FileNumber

Write#FileNumber, TotalDocCo, TotalFunCo, DocumentCo, FunctionCo

For a =0 To DocumentCo

WithDocuments(a)

Write#FileNumber, .TotalNumber, .FileName, .CreateDateTime, .UsedProgramm,_

.Discription,.ImageIcon, .ImageText, .X, .Y, .OutputFunPointCo, _

.OutputDocPointCo

For b= 0 To .OutputFunPointCo

Write#FileNumber, .OutputFunPoints(b)

Next b

For b= 0 To .OutputDocPointCo

Write#FileNumber, .OutputDocPoints(b)

Next b

EndWith

Next a

For a =0 To FunctionCo

WithFunctions(a)

Write#FileNumber, .TotalNumber, .FileName, .CreateDateTime, .UsedProgramm,_

.AutomatFunction, .AutoExeFlag, .AskBeforeExe,.Discription, _

.ImageIcon,.ImageText, .X, .Y, .DocumentsAndFunctionsLink, _

.OutputFunPointCo, .OutputDocPointCo, .InputFunPointCo,_

.InputDocPointCo

For b= 0 To .OutputFunPointCo

Write#FileNumber, .OutputFunPoints(b)

Next b

For b= 0 To .OutputDocPointCo

Write#FileNumber, .OutputDocPoints(b)

Next b

For b= 0 To .InputFunPointCo

Write#FileNumber, .InputFunPoints(b)

Next b

For b= 0 To .InputDocPointCo

Write#FileNumber, .InputDocPoints(b)

Next b

EndWith

Next a

CloseFileNumber

Exit Sub

Err1:

SelectCase MsgBox("Произошлаошибка припопытке записатьфайл проекта."_

&Chr(13) & Chr(10) & Err.Number & Chr(13) & Chr(10) &_

Err.Description,vbAbortRetryIgnore + vbCritical)

CasevbAbort

End

CasevbRetry

Resume0

EndSelect


End Sub


Public SubLoadRegCards()

On ErrorGoTo Err1

DimFileNumber As Integer

Dim a AsInteger

FileNumber= FreeFile

OpenApp.Path & "\RegisterCards" For Input As FileNumber

Input#FileNumber, TotalRegCo, RegistrationCo

IfRegistrationCo = -1 Then

CloseFileNumber

ExitSub

End If

ReDimRegistrations(RegistrationCo)

For a =0 To RegistrationCo

WithRegistrations(a)

Input#FileNumber, .TotalNumber, .Discription, .FileName, .NameApp,.FileMask

EndWith

Next a

CloseFileNumber

Exit Sub

Err1:

SelectCase MsgBox("Произошлаошибка припопытке считатьфайл регистрации."_

&Chr(13) & Chr(10) & Err.Number & Chr(13) & Chr(10) &_

Err.Description,vbAbortRetryIgnore + vbCritical)

CasevbAbort

End

CasevbRetry

Resume0

CasevbIgnore

RegistrationCo= -1

EndSelect

End Sub


Public SubLoadProject(ProjectName As String)

On ErrorGoTo Err1

DimFileNumber As Integer

Dim a AsInteger

Dim b AsInteger

FileNumber= FreeFile

OpenProjectName For Input As FileNumber

Input#FileNumber, TotalDocCo, TotalFunCo, DocumentCo, FunctionCo

IfDocumentCo -1 Then

ReDimDocuments(DocumentCo)

For a= 0 To DocumentCo

WithDocuments(a)

Input#FileNumber, .TotalNumber, .FileName, .CreateDateTime, .UsedProgramm,_

.Discription,.ImageIcon, .ImageText, .X, .Y, .OutputFunPointCo, _

.OutputDocPointCo

If.OutputFunPointCo -1 Then

ReDim.OutputFunPoints(.OutputFunPointCo)

Forb = 0 To .OutputFunPointCo

Input#FileNumber, .OutputFunPoints(b)

Nextb

EndIf

If.OutputFunPointCo -1 Then

ReDim.OutputDocPoints(.OutputDocPointCo)

Forb = 0 To .OutputDocPointCo

Input#FileNumber, .OutputDocPoints(b)

Nextb

EndIf

EndWith

Next a

End If

IfFunctionCo -1 Then

ReDimFunctions(FunctionCo)

For a= 0 To FunctionCo

WithFunctions(a)

Input#FileNumber, .TotalNumber, .FileName, .CreateDateTime, .UsedProgramm,_

.AutomatFunction, .AutoExeFlag, .AskBeforeExe,.Discription, _

.ImageIcon,.ImageText, .X, .Y, .DocumentsAndFunctionsLink, _

.OutputFunPointCo, .OutputDocPointCo, .InputFunPointCo,_

.InputDocPointCo

If.OutputFunPointCo -1 Then

ReDim.OutputFunPoints(.OutputFunPointCo)

Forb = 0 To .OutputFunPointCo

Input#FileNumber, .OutputFunPoints(b)

Nextb

EndIf

If.OutputDocPointCo -1 Then

ReDim.OutputDocPoints(.OutputDocPointCo)

Forb = 0 To .OutputDocPointCo

Input#FileNumber, .OutputDocPoints(b)

Nextb

EndIf

If.InputFunPointCo -1 Then

ReDim.InputFunPoints(.InputFunPointCo)

Forb = 0 To .InputFunPointCo

Input#FileNumber, .InputFunPoints(b)

Nextb

EndIf

If.InputDocPointCo -1 Then

ReDim.InputDocPoints(.InputDocPointCo)

Forb = 0 To .InputDocPointCo

Input#FileNumber, .InputDocPoints(b)

Nextb

EndIf

EndWith

Next a

End If

CloseFileNumber

Exit Sub

Err1:

SelectCase MsgBox("Произошлаошибка припопытке считатьфайл проекта."_

&Chr(13) & Chr(10) & Err.Number & Chr(13) & Chr(10) _

&Err.Description, vbAbortRetryIgnore + vbCritical)

CasevbAbort

End

CasevbRetry

Resume0

CasevbIgnore

FunctionCo= -1

DocumentCo= -1

EndSelect

End Sub

PublicFunction GetREGIndex(TotalNumber As Long) As Integer

Dim a AsInteger

For a = 0To RegistrationCo

IfRegistrations(a).TotalNumber = TotalNumber Then

GetREGIndex= a

ExitFor

End If

Next a

EndFunction

PublicFunction GetDOCIndex(TotalNumber As Long) As Integer

Dim a AsInteger

For a = 0To DocumentCo

IfDocuments(a).TotalNumber = TotalNumber Then

GetDOCIndex= a

ExitFor

End If

Next a

EndFunction

PublicFunction GetFUNIndex(TotalNumber As Long) As Integer

Dim a AsInteger

For a = 0To FunctionCo

IfFunctions(a).TotalNumber = TotalNumber Then

GetFUNIndex= a

ExitFor

End If

Next a

EndFunction


Public SubShowProject()

Dim a AsInteger

WithMainForm

For a = 0To DocumentCo

ImageCo= ImageCo + 1

Load.ImageIcon(ImageCo)

.ImageIcon(ImageCo).Top = Documents(a).Y

.ImageIcon(ImageCo).Left = Documents(a).X

.ImageIcon(ImageCo).Visible = True

.ImageIcon(ImageCo).Enabled = True

.ImageIcon(ImageCo).Picture =LoadPicture(Documents(a).ImageIcon)

.ImageIcon(ImageCo).Tag = Documents(a).TotalNumber


Load.ImageText(ImageCo)

.ImageText(ImageCo).Top = Documents(a).Y + 500

.ImageText(ImageCo).Left = Documents(a).X

.ImageText(ImageCo).Visible = True

.ImageText(ImageCo).Enabled = True

.ImageText(ImageCo).Caption = Documents(a).ImageText

.ImageText(ImageCo).Tag = 1

Next a

End With

End Sub

‘******************************

‘MainForm Code

‘******************************

OptionExplicit

OptionBase 0


PrivateSub Form_DragDrop(Source As Control, X As Single, Y As Single)

Dima As Integer

DimdX As Integer

DimdY As Integer

IfSelectIs = True Then

dX= X - Source.Left

dY= Y - Source.Top

Fora = 0 To ImageCo

IfImageIcon(a).BorderStyle = 1 Then

IfImageText(a).Tag = 1 Then

Documents(GetDOCIndex(ImageIcon(a).Tag)).X =ImageIcon(a).Left + dX

Documents(GetDOCIndex(ImageIcon(a).Tag)).Y =ImageIcon(a).Top + dY

EndIf

ImageIcon(a).Left = ImageIcon(a).Left + dX

ImageIcon(a).Top = ImageIcon(a).Top + dY

ImageText(a).Left = ImageIcon(a).Left

ImageText(a).Top = ImageIcon(a).Top + 500

EndIf

Nexta

Else

IfImageText(Source.Index).Tag = 1 Then

Documents(GetDOCIndex(Source.Tag)).X = X

Documents(GetDOCIndex(Source.Tag)).Y = Y

EndIf

Source.Left = X

Source.Top = Y

ImageText(Source.Index).Left = X

ImageText(Source.Index).Top = Y + 500

EndIf

EndSub


PrivateSub Form_Load()

Dima As Integer


LoadRegCards


MakeDocForm.Combo1.Clear

Fora = 0 To RegistrationCo

MakeDocForm.Combo1.AddItem Registrations(a).NameApp, a

Nexta

MakeDocForm.Combo1.AddItem "Использоватьстандартныйобработчик",RegistrationCo + 1

MakeDocForm.Combo1.ListIndex = RegistrationCo + 1


LoadRegCards

ImageCo= -1

LoadProject App.Path & "\pro1.prj"

ShowProject

SaveProject App.Path & "\pro1.prj"


EndSub


PrivateSub Form_MouseDown(Button As Integer, Shift As Integer, X As Single,Y As Single)


IfButton = 1 Then

MouseX= X

MouseY= Y

SelectOn= True

Withselectrec

.Visible = True

.Height = 0

.Width= 0

.Left= X

.Top= Y

EndWith

EndIf

EndSub


PrivateSub Form_MouseMove(Button As Integer, Shift As Integer, X As Single,Y As Single)

IfSelectOn = True Then

Withselectrec

IfY

.Top= Y

.Height = MouseY - Y

Else

.Top= MouseY

.Height = Y - MouseY

EndIf

IfX

.Left= X

.Width = MouseX - X

Else

.Left= MouseX

.Width = X - MouseX

EndIf

EndWith

EndIf

EndSub


PrivateSub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, YAs Single)

Dima As Integer

IfSelectOn = False Then

MouseX= X

MouseY= Y

IfButton = 2 Then

MenuMake.Visible = True

MenuRegistration.Visible = True

MenuPropertyes.Visible = False

MenuSeparator.Visible = False

IfSelectIs = True Then

MenuDelete.Visible = True

MenuCut.Visible = True

MenuCopy.Visible = True

Else

MenuDelete.Visible = False

MenuCut.Visible = False

MenuCopy.Visible = False

EndIf

'MenuPaste.Visible = False

MenuFrom = -1

MainForm.PopupMenu RightButtonMenuOnForm

EndIf

Else

SelectOn= False

selectrec.Visible = False

SelectIs= False

Fora = 0 To ImageCo

If(ImageIcon(a).Top > selectrec.Top) And _

(ImageIcon(a).Left > selectrec.Left) And _

(ImageIcon(a).Top

(ImageIcon(a).Left

SelectIs = True

ImageIcon(a).BorderStyle = 1

Else

ImageIcon(a).BorderStyle = 0

EndIf


Nexta

EndIf

EndSub


PrivateSub Form_Unload(Cancel As Integer)

SaveProject App.Path & "\pro1.prj"

End

EndSub


PrivateSub ImageIcon_MouseMove(Index As Integer, Button As Integer, Shift AsInteger, X As Single, Y As Single)

IfButton = 1 Then

ImageIcon(Index).Drag

EndIf

EndSub


PrivateSub ImageIcon_MouseUp(Index As Integer, Button As Integer, Shift AsInteger, X As Single, Y As Single)

IfButton = 2 Then

MenuMake.Visible = False

MenuRegistration.Visible = False

MenuPaste.Visible = False

MenuPropertyes.Visible = True

MenuSeparator.Visible = True

MenuFrom = Index

PopupMenu RightButtonMenuOnForm

EndIf


EndSub


PrivateSub Menu_Edit_Click()

MainForm.PopupMenu RightButtonMenuOnForm

EndSub


PrivateSub MenuDelete_Click()

Dima As Integer

IfSelectIs = True Then

Fora = 0 To ImageCo

IfImageIcon(a).BorderStyle = 1 Then

Deletea

EndIf

Nexta

SelectIs= False

Else

DeleteMenuFrom

EndIf

EndSub


PrivateSub MenuMakeDocument_Click()

DocumentCo = DocumentCo + 1

TotalDocCo = TotalDocCo + 1

ReDimPreserve Documents(DocumentCo)

Documents(DocumentCo).X = MouseX

Documents(DocumentCo).Y = MouseY


CurDocument = DocumentCo

DocumentIsChanged = True


MakeDocForm.Label4(0).Caption = "0"

MakeDocForm.Label4(1).Caption = str(Now)

MakeDocForm.Label4(2).Caption = str(Now)

MakeDocForm.IconText.Text = "Документ"

MakeDocForm.IconImage.Picture = LoadPicture(App.Path &"\DefDoc.ico")

MakeDocForm.ImageIconText = App.Path & "\DefDoc.ico"

MakeDocForm.Discrip.Text = ""

MakeDocForm.DocumentName = ""


Canceled= False


MakeDocForm.Show vbModal


IfCanceled = True Then

DocumentCo = DocumentCo - 1

TotalDocCo = TotalDocCo - 1

ReDimPreserve Documents(DocumentCo)

ExitSub

EndIf

MemberDocumentProperty DocumentCo

Documents(DocumentCo).TotalNumber = TotalDocCo

Documents(DocumentCo).OutputFunPointCo = -1

Documents(DocumentCo).OutputDocPointCo = -1


ImageCo= ImageCo + 1

LoadImageIcon(ImageCo)

ImageIcon(ImageCo).Top = Documents(DocumentCo).Y

ImageIcon(ImageCo).Left = Documents(DocumentCo).X

ImageIcon(ImageCo).Visible = True

ImageIcon(ImageCo).Enabled = True

ImageIcon(ImageCo).Picture =LoadPicture(Documents(DocumentCo).ImageIcon)

ImageIcon(ImageCo).Tag =Documents(DocumentCo).TotalNumber


LoadImageText(ImageCo)

ImageText(ImageCo).Top = Documents(DocumentCo).Y + 300

ImageText(ImageCo).Left = Documents(DocumentCo).X

ImageText(ImageCo).Visible = True

ImageText(ImageCo).Enabled = True

ImageText(ImageCo).Caption =Documents(DocumentCo).ImageText

ImageText(ImageCo).Tag = 1 '**************** 1 = Это документ

EndSub


PrivateSub MenuPropertyes_Click()

Dimtemp As Integer

IfMenuFrom >= 0 Then

IfImageText(MenuFrom).Tag = 1 Then

temp= GetDOCIndex(ImageIcon(MenuFrom).Tag)

ShowDocumentProperty temp

MakeDocForm.Show vbModal

MemberDocumentProperty temp

ImageText(MenuFrom).Caption = Documents(temp).ImageText

ImageIcon(MenuFrom).Picture =LoadPicture(Documents(temp).ImageIcon)

EndIf

Else


EndIf

EndSub


PrivateSub MenuRegistration_Click()

RegistrForm.Show vbModal

EndSub


PublicSub Delete(Index As Integer)

Dima As Integer

Dimb As Integer


IfImageText(Index).Tag = 1 Then

b= GetDOCIndex(ImageIcon(Index).Tag)

Fora = b To DocumentCo - 1

LSetDocuments(a) = Documents(a + 1)

Nexta

DocumentCo = DocumentCo - 1

EndIf

Fora = 0 To ImageCo

UnloadImageText(a)

UnloadImageIcon(a)

Nexta


ImageCo= -1

SaveProject App.Path & "\temp~.prj"

LoadProject App.Path & "\temp~.prj"

ShowProject

EndSub


‘********************

‘Makedoc form code

‘********************

OptionExplicit

PrivateSub Cancel_Click()

Canceled= True

Hide

End Sub


PrivateSub Command1_Click()

On ErrorGoTo Err1

RegDialog2.Flags= cdlOFNHideReadOnly

IfCombo1.ListIndex (RegistrationCo + 1) Then

RegDialog2.Filter= "Все файлы|*.*|"& _

Registrations(Combo1.ListIndex).NameApp & "|"& _

Registrations(Combo1.ListIndex).FileMask

Else

RegDialog2.Filter= "Все файлы|*.*"

End If

RegDialog2.ShowOpen

DocumentName.Text= RegDialog2.FileName

Err1:

End Sub


PrivateSub Command2_Click()

On ErrorGoTo Err1

RegDialog.Flags= cdlOFNFileMustExist + cdlOFNHideReadOnly

RegDialog.ShowOpen

IconImage.Picture= LoadPicture(RegDialog.FileName)

ImageIconText= RegDialog.FileName

Err1:

End Sub


PrivateSub DocumentName_Change()

DocumentIsChanged= True

End Sub


PrivateSub Form_Activate()

DocumentIsChanged= False

End Sub


PrivateSub OkButton_Click()

DimErrorFlag As Boolean

Dim tmpAs Integer

DimCurObject As Object

DimretShell As Long


On ErrorGoTo Err1

IfDocumentName.Text = "" Then

MsgBox("Необходимозаполнить поле""Документ:""")

DocumentName.SetFocus

Exit Sub

End If

IfDocumentIsChanged Then

ErrorFlag= False

tmp =FileLen(DocumentName.Text)

IfErrorFlag = True Then

tmp =FreeFile

OpenDocumentName.Text For Output As tmp

Closetmp

End If

End If

Hide

Exit Sub

Err1:

IfErr.Number = 53 Then

ErrorFlag= True

Else

SelectCase MsgBox("Произошлаошибка номер:" & Err.Number & _

Chr(13) & Chr(10) _

&Err.Description, vbAbortRetryIgnore + vbCritical)

CasevbAbort

End

CasevbRetry

Resume0

EndSelect

End If

ResumeNext

End Sub


‘***********************

‘ registrationform code

‘***********************

OptionExplicit

DimCurIndex As Integer

PrivateSub Browser_Click()

On ErrorGoTo Err1

RegDialog.Flags= cdlOFNFileMustExist + cdlOFNHideReadOnly

RegDialog.ShowOpen

Path =RegDialog.FileName

Err1:

End Sub


PrivateSub Cancel_Click()

LoadRegCards

Hide

End Sub


PrivateSub Combo1_Click()

ShowRegCardCombo1.ListIndex

End Sub


PrivateSub DestroyReg_Click()

Dim a AsInteger


For a =CurIndex To RegistrationCo - 1

LSetRegistrations(a) = Registrations(a + 1)

Next a

RegistrationCo= RegistrationCo - 1

IfRegistrationCo > -1 Then

ReDimPreserve Registrations(RegistrationCo)

IfCurIndex > RegistrationCo Then CurIndex = CurIndex - 1

ComboRemake

CardShowCurIndex

Combo1.ListIndex= CurIndex

'ShowRegCardCurIndex

Else

EnabledAllRegistrationCo

End If

EnabledAllRegistrationCo

End Sub


PrivateSub Form_Activate()

EnabledAllRegistrationCo

IfRegistrationCo = -1 Then Exit Sub

ComboRemake

CurIndex= 0

CardShowCurIndex

Combo1.ListIndex= CurIndex

End Sub


PrivateSub NewReg_Click()

TotalRegCo= TotalRegCo + 1

RegistrationCo= RegistrationCo + 1

ReDimPreserve Registrations(RegistrationCo)


Registrations(RegistrationCo).NameApp =InputBox("Введите имяприложения",, "Приложение"+ str(RegistrationCo + 1))

IfRegistrations(RegistrationCo).NameApp = "" Then

ReDimPreserve Registrations(RegistrationCo)

TotalRegCo= TotalRegCo - 1

RegistrationCo= RegistrationCo - 1

ExitSub

End If

Registrations(RegistrationCo).TotalNumber = TotalRegCo

EnabledAllRegistrationCo

ComboRemake

Combo1.ListIndex= RegistrationCo

'ShowRegCardRegistrationCo


'Debug.Print


End Sub


PrivateSub OkButton_Click()

MemberCard

SaveRegCards

Hide

End Sub


PrivateSub Rename_Click()

Dim a AsInteger

Dim strAs String

a =Combo1.ListIndex


str =InputBox("Введите имяприложения",, Registrations(a).NameApp)

If str "" Then Registrations(a).NameApp = str

ComboRemake

Combo1.ListIndex= a

'ShowRegCarda


End Sub


PrivateSub ShowRegCard(NumRegCard As Integer)

MemberCard

CardShowNumRegCard

End Sub


Public SubComboRemake()

Dim a AsInteger

Combo1.Clear

For a = 0To RegistrationCo

Combo1.AddItemRegistrations(a).NameApp, a

Next a


End Sub


Public SubEnabledAll(Yes As Integer)

If Yes =-1 Then

ComboRemake

Browser.Enabled= False

DestroyReg.Enabled= False

Combo1.Enabled= False

Rename.Enabled= False

Path.Enabled= False

Discrip.Enabled= False

ListExt.Enabled= False

Path.Text= ""

Discrip.Text= ""

ListExt.Text= ""

Label1.Enabled= False

Label2.Enabled= False

Label3.Enabled= False

Label4.Enabled= False

Else

DestroyReg.Enabled= True

Combo1.Enabled= True

Browser.Enabled= True

Rename.Enabled= True

Path.Enabled= True

Discrip.Enabled= True

ListExt.Enabled= True

Label1.Enabled= True

Label2.Enabled= True

Label3.Enabled= True

Label4.Enabled= True

End If

End Sub

Public SubCardShow(NumRegCard As Integer)

Path.Text= Registrations(NumRegCard).FileName

ListExt.Text= Registrations(NumRegCard).FileMask

Discrip.Text= Registrations(NumRegCard).Discription

CurIndex= NumRegCard

End Sub


Public SubMemberCard()

Registrations(CurIndex).FileName = Path.Text

Registrations(CurIndex).FileMask = ListExt.Text

Registrations(CurIndex).Discription = Discrip.Text

End Sub


ГОСУДАРСТВЕННЫЙКОМИТЕТ РОССИЙСКОЙФЕДЕРАЦИИ

ПО ВЫСШЕМУОБРАЗОВАНИЮ

Ы

ТАГАНРОГСКИЙГОСУДАРСТВЕННЫЙРАДИОТЕХНИЧЕСКИЙУНИВЕРСИТЕТ


Факультет   Электроникии Прибостроения          

Кафедра   КонструированияЭлектронныхСредств     


К защитедопустить:


Зав.Кафедрой   д.т.н.профессор БолиЛ.А.


>   апреля   1997г.


ПОЯСНИТЕЛЬНАЯЗАПИСКА

К ДИПЛОМНОМУПРОЕКТУ


на тему:Разработкапрограммыконтроллера     автоматическисвязываемыхобъектов для     управленияконструкторскойдокументациейв      средеWindows 95/NT (дипломная_работа).        

Руководительдипломногопроекта:к.т.ндоцент Косторниченко А.И

(должность,ученная степеньи звание)


Консультанты:

    по разделу безопасности и экологичности                                              /Коваленко_А.В./                                                     


Дипломант:СорокинЮрий Владимирович     группаЭ-92

(фамилия,имя, отчество,группа)


>  апреля   1997г.


Таганрог1997 г.