Создание приложений ОС Windows средствами Visual Basic

         

Барнаул


УДК 681.3.06(075.5)

Гарколь Н.С., Лопухова Н.Г., Лопухов В.М. Создание приложений опреционной системы Windows средствами Visual Basic: Методические указания к лабораторным работам по курсу "Операционные системы"./ АлтГТУ им. И.И. Ползунова. – Барнаул: Изд-во АлтГТУ, - 2001. – 72 с.

Данные методические указания предназначены для студентов третьего курса специальности 22.03 (САПР), изучающих курс "Операционные системы", для освоения базовых понятий для работы с ОС Windows-98, используя средства Visual Basic 6.0 для ознакомления с элементами управления Windows, их свойствами, методами и событиями с целью создания собственных приложений.

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

Рассмотрены и одобрены на

заседании кафедры САПР.

Протокол № 8 от 4 июня 2001 г.  

Рецензент:  доцент кафедры «Прикладная математика»

АлтГТУ, к.т.н Тушев А.Н.




Цикл, управляемый в начале


Do [{While / Until} Условие]

[Операторы]

[Exit Do]

[Операторы]



Циклы




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

4.3.1 Оператор For…Next

Конструкция For…Next использует счетчик цикла, её синтаксис выглядит следующим образом:

For Счётчик = Начальное значение To Конечное значение [Step шаг]



Dim Имя_переменной As Тип_данных.


При явном объявлении переменные перед употреблением должны быть определены, например:

Dim A, B As Byte

Dim C As Long, D As Integer

При неявном объявлении переменные просто используются в программе, например:      A%=7

Явное объявление переменных устраняет возможные ошибки при написании и улучшает читабельность. По умолчанию всегда применяется тип Variant. Чтобы переменные всегда объявлялись явно, необходимо на вкладке Editor окна Options (команда меню Tools\Options…) установить опцию Require Variable Declaration

или вручную добавить строку Option Explicit в секцию (General)(Declarations) существующих форм, модулей или классов.

Массив – это набор элементов определённого типа, каждый из которых имеет свой порядковый номер (индекс). Границы статического массива устанавливаются на этапе разработки и могут изменяться только в тексте программы. Для объявления такого массива используется оператор Dim с указанием в круглых скобках после имени массива его размера, а элементы такой переменной различают по индексу (в Visual Basic индексирование начинается с нуля). Например,

Dim aName(150) As String

aName(4)="Иванов"

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

Dim aBirthDay (1970 To 2000)



Do


[Операторы]

[Exit Do]

[Операторы]

Loop [{While / Until} Условие]

Если условие проверяется в начале цикла, то он никогда не выполняется в случае невыполнения условия. Если же проверка происходит в конце, цикл выполняется как минимум один раз, независимо от того. выполнено условие или нет. Тело цикла выполняется неопределённое число раз, пока условие не вызовет выход из цикла:

Do

Until EOF ()

Input # 1, SomeDate



Драйверы внешних устройств


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

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

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



End If


Блочная запись предоставляет такие же возможности как и однострочная. Но если в зависимости от условия необходимо выполнить не простую команду, а группу операторов, следует использовать блочный синтаксис. Это относится и к ветви Else. Кроме того, блочная структура с Else If позволяет анализировать несколько условий.

Пример 1:



End Select


В операторе Case можно использовать строковое или числовое выражение. В списке значений допускается указать: явное значение; диапазон значений, задаваемый с помощью ключевого слова To; условный диапазон, задаваемый с помощью ключевого слова Is.

Пример 1:   Private Sub Command_Click()

                        Speed = S/t   'число от 0 до 50


Case 0,1,2 означает, что если Speed (скорость) равна 0,1 или 2, следует отобразить сообщение "Медленно". Case 3 To 30 применимо, если скорость находится в диапазоне от3 до 30. Case Is >= 50 применимо, если скорость превышает или равна 50.

Пример 2:   Animal      'животное'

                    Food          'пища'




то есть если животное – кролик, то его пищей является капуста, если лев – мясо.



End Sub


В этом примере выводится всё содержимое массива. Для безусловного вывода из цикла используется оператор Exit For

Пример 3:

For Count = 1 To Number_of_members

Error = Print Letter ()

If

Error = true Then



в окне сообщений будут появляться


Print Count

Next Count

В примере в окне сообщений будут появляться значения 0,2,4,6,8,10. Процесс заканчивается, когда значение Count превысит конечное значение (в данном случае 10). Значение шага может быть также отрицательным, в этом случае текущее значение счётчика в конце каждого цикла будет уменьшаться.

Пример 2:

(General) (Declaration)

Dim

aArray (1997 To 2050)


Характеристики операционных систем


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

Разрядность операционной системы

показывает, какую разрядность внутренней шины данных центрального процессора способна поддерживать операционная система. Разрядность операционной системы говорит о том, с какими программами она будет работать. Все современные операционные системы поддерживают 32-разрядный интерфейс прикладных программ. Разрядность кода интерфейса прикладных программ имеет непосредственное отношение к адресному пространству ОЗУ.

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

Операционная система может поддерживать два режима работы центрального процессора – реальный и защищенный. В реальном режиме

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

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

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

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

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

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

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



If Age< Then Print "Вы ещё не можете голосовать"


Если возраст не достигает 18 лет, на экране отображается окно с сообщением: "Вы ещё не можете голосовать". Если же возраст 18 лет и более, никаких действий не предпринимается.

Пример 2:

If Age<18 Then Print "Вы ещё не можете голосовать" Else Print "Вы можете голосовать"

В этом варианте, если возраст 18 лет и более, отображается сообщение "Вы можете голосовать".

Блочная версия оператора If немного сложнее:



Интервал срабатывания таймера


7. Создайте текстовый редактор. Создайте многолинейное текстовое поле. Создайте и организуйте три кнопки: "Открыть", "Сохранить" и "Выход". При открытии файлов просматривать только текстовые файлы типа *.t №варианта (Например, для варианта 20: *.t20). При сохранении организовать выбор имени. Выводить информацию в окне об изменении текста и наличии текста в текстовом поле.

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

1.

Положение формы на экране.

2.

Значение текстового поля.

3.

Активный элемент списка.

4.

Положение активной иконки на форме.

5.

Режим вывода окна (свернуто, во весь экран)

6.

Результат последней операции в "калькуляторе".

7.

Цвет рисунка в графическом редакторе.

8.

Активные диск и папку в "проводнике".

Литература

1)       Райтингер М., Муч Г. Visual Basic 6.0: для пользователя: пер. с нем. – Киев.: BHV, 1999 – 416 с.: ил.

2)       Линке М. Visual Basic 5: справочник: пер. с нем. – М: ЗАО "Изд-во БИНОМ", 1998. – 512 с.: ил.

3)       Фролов А.В., Фролов Г.В. Операционная система Windows 95 для программистов - М: Диалог - МИФИ, 1996. - 228 с.

4)       Руководство программиста по Microsoft Windows 95: пер. с англ. - М: Изд-во "Русская редакция" ТОО "Channel Trading Ltd", 1997. - 600 с.: ил.

Содержание



Измените свойство Caption формы Cdir на «Проводник»


Создайте в форме элементы управления DriveListBox и DirListBox. Нам подходят все значения свойств этих элементов, установленные по умолчанию.

Создайте элемент FileListBox. Измените его свойство Pattern на «*.*», это позволит отображать в списке все файлы. Можно ввести любую маску, в зависимости от того, какие файлы необходимо включить в список. Свойства ReadOnly, Archive, Hidden и System определяют показывать или нет в списке файлы с соответствующим атрибутом. Поставьте свойству ReadOnly значение True.

Разместите созданные элементы в соответствии с рис. 25.

Щёлкните два раза на списке дисков. В открывшемся окне появится шаблон процедуры. Приведите код в соответствие с нижеследующим:

Private Sub Drive1_Change()

Dir1.Path = Drive1.Drive

End Sub

При выборе какого-либо диска из списка, вызывается приведённая процедура. В ней значение свойства Drive списка дисков, содержащее имя выбранного диска, записывается в свойство Path списка директорий Dir1, которое определяет, директории какого диска будут отображаться в списке.

Далее введите следующий код:

Private Sub Dir1_Change()

File1.Path = Dir1.Path

End Sub

Этот код выполняется при выборе какого-либо директория из списка Dir1. Он записывает значение свойства Path списка директорий, содержащее путь выбранной директории, в аналогичное свойство списка файлов File1 определяя тем самым, файлы из какой директории будут отображаться в списке.



Элементы управления Windows


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

Создание Windows-приложений в Visual Basic практически невозможно без использования элементов управления, так как они позволяют пользователю взаимодействовать с этими приложениями.

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

Если Вы хотите отменить выбор элемента на панели элементов, то щёлкните мышкой по другому элементу или по значку

, находящемуся там же.



К лабораторным работам и СРС


по курсу "Операционные системы"



Мастер инсталляции


После того как приложение Visual Basic готово к передаче пользователям, необходимо подготовить дистрибутивный комплект. Создание дистрибутивного пакета приложения осуществляется в два этапа. На первом этапе производится упаковка приложения в один или несколько CAB-файлов и создаётся программа инсталляции. На втором этапе упакованное приложение и программу инсталляции следует сохранить таким образом, чтобы пользователи могли получить дистрибутивный комплект (инсталляционный пакет) на магнитном носителе или получить возможный доступ к нему по сети.

Для решения этой задачи можно воспользоваться двумя средствами, входящими в состав пакета Microsoft Visual Studio: утилитой Package and Deployment Wizard

(бывший Setup Wizard) или Setup Toolkit. Мастер Package and Deployment Wizard автоматизирует процесс создания инсталляционного пакета, а программа Setup Toolkit позволяет задать параметры настройки этого процесса.

Для запуска Package and Deployment Wizard откройте окно Add-Ins Manager (меню Add-Ins) и дважды щёлкните на элементе Package and Deployment Wizard.

1-й шаг: На первом шаге мастер попросит задать имя проекта, для которого следует создать дистрибутивный пакет, и выбрать тип создаваемого мастером пакета. С помощью мастера можно создать стандартный инсталяционный пакет, запускаемый программой SETUP.EXE, направить дистрибутивный пакет на узел Internet или подготовить сценарий инсталяции проекта. Выберите нужный вариант инсталляционного пакета и внимательно читайте выводимые на экран сообщения.

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

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

2-й шаг: В списке Type List следующего окна мастера следует определить тип создаваемого пакета: стандартный пакет инсталляции (Standard Setup Package) или файл зависимостей (Dependency File).


3-й шаг: На третьем шаге мастер предложит ввести сведения о местоположении инсталляционного пакета. Проверьте правильно ли выбран каталог, и нажмите кнопку Next. При этом вы можете указать сетевой ресурс (кнопка Network) или создать новую папку (кнопка New Folder).

4-й шаг: Список Files четвёртого окна мастера содержит имена файлов, которые предполагается включить в инсталляционный пакет. Мастер предоставляет нам возможность выбрать только некоторые из них (если это возможно) или добавить в приложение новые компоненты. Для удаления файла из проекта достаточно сбросить флажок слева от имени файла. Однако если удалить файл нельзя, мастер отобразит окно с соответствующим предупреждением.

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

5-й шаг: На пятом шаге мастер предлагает вам указать количество создаваемых CAB-файлов. Можно создать один большой файл и сохранить его на компакт-диске или подготовить несколько файлов стандартного размера для сохранения на дискетах.

6-й шаг: На шестом шаге мастер предлагает ввести текст надписи, которая будет отображаться в окне при запуске программы установки приложения.

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

8-й шаг: В следующем окне мастера необходимо указать сведения о предлагаемом месте расположения компонентов, входящих в приложение.

9-й шаг: Список Shared Files окна мастера содержит имена файлов, которые могут использоваться не только вашим приложением. Если сделать эти файлы общедоступными(Shared), их можно будет удалить только после удаления всех соответствующих приложений.

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

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


Назначение операционной системы


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

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

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

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

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

Существуют два типа диалоговых интерфейсов – текстовый, как, например, в операционной системе MS DOS, и графический, характерный для семейства операционных систем Windows. В графических интерфейсах информация и команды представляются в виде пиктограмм (значков), и пользователь выполняет те или иные действия, указывая на эти пиктограммы и манипулируя ими определенным образом.

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

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



Не используется б


Файл #1 (25 Кб)

7Кб

Файл #2 (32 Кб)

16Кб

16Кб

16Кб

16Кб


Файл #1 (25 Кб)

Файл #2 (32 Кб)

4Кб

4Кб

4Кб

4Кб

4Кб

4Кб

4Кб

4Кб

4Кб

4Кб

4Кб

4Кб

4Кб

4Кб

4Кб

4Кб

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

Преимущество NTFS в том, что она может работать с разделами большого размера. Предельный размер файла на разделе NTFS — 16 экзабайт. Это очень много, так например:

1024 Мб   = 1Гб (гигабайт)                    1024 Гб   = 1Т (терабайт)

1024 Тб   = 1П6 (петабайт)                    1024 Пб   = 1Э6 (экзабайт)

Один экзабайт — это чуть больше миллиарда гигабайт. Минимальный размер раздела NTFS — 5 Мб.

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

- в NTFS встроены средства восстановления после сбоя, поэтому пользователям не нужно запускать утилиту восстановления диска на разделе NTFS;

- на разделе NTFS нельзя восстановить удаленный файл;

- при использовании NTFS значительно уменьшаются потери из-за фрагментации файлов;

- NTFS поддерживает модель защиты Windows NT, поэтому все файлы и каталоги на разделе NTFS

можно защищать правами доступа и подвергать аудиту;

- из-за падения производительности не рекомендуется применять NTFS на томах размером менее 400 Мб.



Next Count


В этом примере в цикле производится печать письма для значений Count от 1 до Number_of_members. При каждом прохождении цикла значение Count автоматически увеличивается. Величина шаг определяется значением, указанным после ключевого слова Step (шаг). По умолчанию шаг приращения равен 1.



О системах программирования


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

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

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

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

1.3 Составные части операционной системы

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

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

Рассмотрим наиболее важные из них.

1.3.1 Файловая система

Файловая система,

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

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

Существуют различные файловые системы. Например, в операционных системах МS DOS, Windows З.х и Windows 95/98 файловая система FAT

(File Allocation Table–таблица размещения файлов) имеет структуру управляющей информации на носителе, включающую загрузчик (BOOT), таблицу размещения файлов (FAT) и корневой каталог (RDA).

В операционной системе OS/2 используется файловая система HPFS (High-Performance File System–высокопроизводительная файловая система), которая не воспринимается DOS. В Windows NT используется файловая система NTFS NT File System–файловая система NT), совместимая с файловыми системами FAT и HPFS.


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

Файл может быть разделен на несколько частей, каждая из которых может храниться на различных участках диска или на различных дисках.

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

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

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

FAT32 более эффективно использует дисковое пространство. В FAT 16 таблица размещения файлов разделена на блоки по 16 кб. Если блок используется не полностью, оставшийся объем пропадает. В FAT32 объем блоков–4 кб, поэтому при частичном заполнении блока меньше дискового пространства остается пус­тым. Кроме того, файловая система FAT16 поддерживает диски разме­ром лишь до 2 Гб, в то время как FAT32–до 2 Тб.


Обмен сообщениями в -разрядных версиях Windows


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

1.10.2 Обмен сообщениями в Windows 98

Windows 98 проблемы единой очереди сообщений разрешены: у каждого выполняющегося Win32-пpилoжeния – своя очередь.



Составные части операционной


1.1 Назначение операционной системы                                                     3

1.2 О системах программирования                                                              4

1. 3 Составные части операционной системы                                           4

1.3.1 Файловая система                                                                                   4


Оператор Do While


Конструкция Do…Loop позволяет выполнять блок кода, пока удовлетворяется некоторое условие. В зависимости от позиции условия различают два варианта цикла Do…Loop.



Оператор If…Then…Else


Этот оператор существует в двух формах: однострочной и блочной. Простейшей формой оператора If является однострочная:

If условие Then оператор [Else оператор]

Функционирование оператора такой структуры относительно просто. Если условие после If истинно, т.е. результат равен True, выполняется оператор, указанный за Then. Если же результат

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

Пример 1:


4.2 Оператор Select Case                                                                                 40

4.3 Циклы                                                                                                             41

4.3.1 Оператор For…Next                                                                               42



Оператор Select Case


Select Case оператор ветвления, который позволяет выполнять одну из нескольких групп операторов в зависимости от значения условия. Синтаксис конструкции Select Case:     



Оператор While…Wend


Цикл While…Wend функционально аналогичен форме Do While…Loop оператора цикла Do…Loop и похожа по синтаксису на конструкцию циклов While в других языках программирования. Для цикла While…Wend не может применяться оператор досрочного выхода Exit Do. Данный оператор цикла используется только для совместимости с другими диалектами Basic, а также для совместимости с более ранними версиями Visual Basic, в которых не было оператора Do…Loop.

Пример: Count = 0

While Count < Number_of_members

Print Letter ()

Count = Count + 1

Wend


5 Создание меню                                                                                               44

6 Система меню Visual Basic                                                                          46

6.1. Меню File                                                                                                     46

6.2. Меню Edit                                                                                                    47

6.3. Меню View                                                                                                   48

6.4. Меню Project                                                                                               49

6.5. Меню Format                                                                                              51

6.6. Меню Debug                                                                                                52

6.7. Меню Run                                                                                                    52

6.8. Меню Tools                                                                                                  52

6.9. Меню Add-Ins                                                                                             53

6.10. Меню Window                                                                                          53

6.11. Меню Help                                                                                                 53

7 Мастер инсталляции                                                                                    53

7.1 Программа инсталляции                                                                          55

8 Создание простейшего приложения Visual Basic                                 56

9 Примеры создания приложений                                                                                58

9.1 Приложение «калькулятор»                                                                    58

9.2 Приложение «проводник»                                                                        60

9.3 Приложение «Paint»                                                                                   61

9.4 Приложение «Иконка»                                                                              64

9.5 Приложение «Главная форма»                                                               64



Операторы


Next [Счётчик]

В начале выполнения цикла значение Счётчик устанавливается в Начальное значение. При каждом проходе переменная Счётчик  увеличивается на 1 или на величину шаг. Если она достигает или становиться больше (меньше, при отрицательном шаге) Конечное значение, то цикл завершается и выполняются следующие операторы. Разность между начальным и конечным значением, делённая на величину шага, составляет число проходов.

Пример 1:



к ключу. Должна быть уникальной


Имя
Да
Строка, используемая для доступа к ключу. Должна быть уникальной среди других ключей того же уровня иерархии
Класс
Нет
Имя класса объекта. Предназначен для использования в коде методов класса, экземпляры которого хранятся в реестре. Приложениями обычно не используется
Дескриптор защиты
Нет
Ключи содержат стандартные дескрипторы защиты Windows NT, допускают управление доступом и могут быть подвергнуты аудиту
Время
последней записи
Нет
Время, когда ключ был последний раз модифицирован. Любое изменение элемента считается изменением его родительского ключа
Элемент(ы)
Нет
Информация, хранящаяся в ключе: имя для идентификации значения, тип для определения типа данных и сами данные соответствующей длины и формата

Рис. 9
Ключ
HKEY_CLASSES_ROOT
содержит те же данные, что и файл REG.DAT в Windows
3.1, — сведения о встраивании и связывании объектов (Object Linking and Embedding, OLE) и ассоциации файлов с приложениями, которые позволяют Windows запускать приложение, соответствующее выбранному файлу.
Ключ HKEY_LOCAL_MACHINE
содержит спецификации рабочей станции, драйверов и другие системные настройки, включая информацию о типах установленного оборудования, настройках портов, конфигурации программного обеспечения и т.п. Эта информация специфична для компьютера, а не для пользователя.
Ключ HKEY_CURRENT_CONFIG содержит информацию о текущей конфигурации аппаратуры компьютера и используется в основном на компьютерах с несколькими аппаратными конфигурациями, например при подключении портативного компьютера к стыковочной станции и отключении от нее. Информация, содержащаяся в этом ключе, копируется из ключа
HKEY_LOCAL_MACHINE.
Ключ HKEY.USERS
содержит информацию обо всех пользователях данной рабочей станции. Здесь хранятся данные о каждом пользователе, а также типовые настройки, служащие шаблоном для новых ключей, создаваемых пользователем. Типовые настройки включают различные значения по умолчанию для программ, схем событий, конфигураций рабочего стола и т.п.


Ключ HKEY_CURRENT_USER содержит настройки системы и программ, относящиеся к текущему пользователю. Он создается при регистрации пользователя в системе на основе информации из соответствующего раздела ключа HKEY_USERS. Именно здесь хранятся сведения о том, как данный пользователь сконфигурировал рабочую станцию — например, данные том, что каждый старт системы должен сопровождаться звуковым эффектом. Прочая информация может включать цветовые схемы, ярлыки, состояние рабочего стола и т.п.
Ключ HKEY_DYN_DATA
содержит динамическую информацию о состоянии различных устройств, причем она создается заново при каждом старте системы. Ключ HKEY_DYN_DATA используется как часть системы измерения производительности и для конфигурации устройств Plug-and-Play. Информация, содержащаяся здесь, меняется при добавлении новых устройств и удалении существующих. Для каждого устройства это данные о соответствующем аппаратном ключе, известных проблемах и текущем состоянии устройства. Ключ
HKEY_DYN_DATA также содержит сведения о состоянии системы, формируемые с помощью утилиты System Monitor. Это ключ не входит в состав файлов реестра и всегда создается динамически.
1.13.3 Модификация реестра Windows
Работать с приложением гораздо приятнее, если при каждом запуске оно сохраняет информацию о действиях и предпочтениях пользователя. Эти данные можно применять и далее — например, сохранить имя последней базы данных, открытой пользователем, и указать его в качестве имени по умолчанию, когда пользователь обратится к базе данных в следующий раз.
Для сохранения параметров приложения в реестре применяются операторы Visual Basic SaveSetting и GetSetting и соответствующие функции API Windows. Они имеют следующий синтаксис:
SaveSetting (приложение, раздел, ключ, параметр) GetSetting (приложение, раздел, ключ, [по умолчанию])


Рис. 10
Пример:  В приведенном ниже коде с помощью оператора SaveSetting создаются элементы реестра для приложения, заданного в аргументе приложение (рис. 10), а затем применяется оператор GetSetting для получения значений параметров.
<


'Поместить настройки в реестр
Private Sub Form_Load()
Me.Move GetSetting("MyApp", "FormSettings", "Left", 0), _
GetSetting("MyApp", "FormSettings", "Top", 0), _
GetSetting("MyApp", "FormSettings", "Width", 5000), _
GetSetting("MyApp", "FormSettings", "Height", 4000)
Me.Text1.Text = GetSetting("MyApp", "FormSettings", "txtValue")
End Sub
' Использовать настройки из реестра для сохранения свойств
'выгружаемой формы
Private Sub Form_Unload(Cancel As Integer)
SaveSetting "MyApp", "FormSettings", "Left", Me.Left
SaveSetting "MyApp", "FormSettings", "Top", Me.Top
SaveSetting "MyApp", "FormSettings", "Width", Me.Width
SaveSetting "MyApp", "FormSettings", "Height", Me.Height
SaveSetting "MyApp", "FormSettings", "txtValue", Me.Text1.Text
End Sub

Описание переменных


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



Основные элементы управления


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

 - надпись (Label) предназначена для отображения текста, который пользователь не может изменить с клавиатуры.

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

 - графический образ (Image) отображает на экране рисунок. Image использует меньше ресурсов и поэтому быстрее, чем PictureBox.

 -текстовое поле (TextBox) является основным элементом управления, предназначенным для ввода данных.

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

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

 и
 - горизонтальная и вертикальная полосы прокрутки (HScrollBar и VScrollBar) позволяют отображать и вводить числовые значения из заданного диапазонабез помощи клавиатуры.

 - таймер (Timer) – это управляющий элемент, который генерирует события через заданные промежутки времени.

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


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

 - список каталогов (DirListBox или DirectoryListBox) элемент управления, предназначенный для выбора файлов. Он отображает структуру выбранного диска и позволяет осуществлять выбор и смену каталога.

 - объект управления типа "фигура" (Shape) может принять вид предопределённой фигуры, т.е. служит для представления на рабочей поверхности объекта геометрических фигур.

 - объект типа "линия" (Line) служит для отображения линии.

 - флажок (CheckBox) элемент управления, который можно отмечать(ставить "галочку"), выбирая из ряда опций одну или несколько. CheckBox может иметь два различных состояния: отмеченное и неотмеченное. Он может иметь и третье состояние. В этом случае элемент управления отображается как отмеченный, но недоступный. Установить такое состояние элемента управления можно только программно.

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

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

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



 - объект управления типа "данные" (Data) осуществляет связь приложения с базой данных и открывает указанную таблицу или множество записей на основе SQL-запроса к этой базе. Этот управляющий объект предоставляет доступ к базе данных посредством объекта Recordset одного из трёх типов.

 - OLE-контейнер (OLE) способен заключать связываемые и внедряемые объекты.

Для Windows 95/98 в Visual Basic 6.0 включены новые элементы управления (Microsoft Windows Common Controls). Для того чтобы на панели элементов управления (General) установить дополнительные элементы управления необходимо выбрать пункт Components меню Project (рис. 11) или нажать комбинацию клавиш Ctrl+T. Так же можно щёлкнуть на панели элементов управления General правой кнопкой мыши и выбрать Components из появившегося контекстного меню (рис. 12).

В окне Components на вкладках Controls и Insertable Objects выделите флажком дополнительные элементы управления и нажимаете кнопку Оk (рис. 13). После этого на экране появится панель элементов управления (General), но уже с дополнительными элементами (рис. 14).



Рис. 11



Рис. 12



Рис. 13

 Рис. 14

 

2.2 Некоторые дополнительные элементы управления

 - набор изображений (ImageList) элемент управления, который никогда не используется самостоятельно. Он предоставляет другим элементам управления список графических образов. ImageList невидим в форме во время выполнения программы. Он только предоставляет информацию для других элементов управления и не имеет собственных событий. Отдельные изображения ImageList просто используются другими элементами управления. Важное свойство ImageList – это Index, с помощью которого другие элементы управления выбирают изображения из ImageList. При этом во вкладке свойств General нужно установить размер изображения. В Visual Basic 6.0 этот элемент управления поддерживает форматы *.GIF, *.JPG, *.CUR.

 - панель инструментов (ToolBar) есть в каждом приложении Windows и используется для создания панели инструментов. ToolBar – это панель с различными кнопками, свойства которых определяются разработчиком. Важное значение имеет свойство Key, используемое для определения выбранной пользователем кнопки.



 - панель состояния (StatusBar) – это важный элемент, который должен быть в каждом приложении

Windows. StatusBar – это узкая полоса внизу окна, отображающая информацию, например дату, время, число страниц и многое другое (см. рис. 15).



Рис. 15

Для создания такой панели состояния в семействе Windows Common Controls имеется элемент управления StatusBar. Панель состояния может содержать до 16 отдельных панелей, в которых отображается различная информация. С помощью свойства Style можно установить вид панели состояния: она может быть простой или состоящей из нескольких частей. Отдельные части или поля панели состояния описывают определяемые пользователем свойства. С их помощью можно добавлять новые поля или изменять их содержимое.

 - отображение вкладок (TabStrip) – диалоговые окна с вкладками. Для его создания в Visual Basic есть специальный элемент управления TabStrip, который содержит семейство объектов Tab,

но не является контейнером, поэтому для отображения в нём элементов управления необходим элемент-контейнер, например Frame.

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

 - окно редактирования с кнопкой-счётчиком (UpDown) используется для установки различных числовых значений в окне.

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

 - элемент управления для работы с временем (DateTimePicker или DTPicker) выглядит как поле со списком и позволяет отображать дату и/или время, а также вводить дату с помощью MonthView.

 - элемент управления "анимация" (Animation) используется для отображения небольшой анимации в диалоговом окне. Могут воспроизводиться только несжатые AVI-файлы без звука либо сжатые с использованием технологии Run-Length-Encoding (RLE).

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

 - элемент установки значения из диапазона (Slider) элемент управления, позволяющий выбирать дискретные значения или набор значений из определённого диапазона (см. рис. 16).



Рис. 16

 - поле со списком (ImageCombo) данный элемент управления, который подобен элементу ComboBox с одним преимуществом, которое позволяет добавлять графические изображения в список элементов.






Параметры событий MouseDown, MouseUp и MouseMove приведены ниже.


Параметр

Значение

Button

Нажата кнопка мыши: 1=левая, 2=правая, 4=средняя

Shift

Нажата клавиша: 0=ничесго, 1=[Shift], 2=[Ctrl], 4=[Alt],

а также их комбинации

X

Координата X

Y

Координата Y

Если свойству формы KeyPreview присвоить значение True, то событие связанное с клавиатурой, передаётся сначала форме, а затем текущему элементу управления. Событие KeyPress возвращает код ASCII нажатой клавиши (процедура передаёт параметр KeyASCII, который можно изменять). Событие KeyDown вызывается при нажатии клавиши клавиатуры, а KeyUp – при отпускании, при этом передаются параметры KeyCode (содержит клавиатурный код, например vbKeyF1) и Shift (информирует о состоянии клавиш [Shift], [Ctrl], [Alt]). После нажатия клавиши поступают в такой последовательности:KeyDown, KeyPress и KeyUp.

Активный элемент получает фокус, т.е. если это текстовое поле, то оно отображается мерцающим маркером ввода, а если командная кнопка, то выделяется пунктирной рамкой вокруг надписи. Если перейти от одного элемента управления к другому, то для предыдущего элемента вызывается событие LostFocus, а для нового – GotFocus.

События формы:

·         событие Load происходит при загрузке формы в память;

·         событие UnLoad вызывается, если форма удаляется из памяти (с помощью параметра Cancel можно отменить удаление формы с экрана);

·         параметр UnLoadMode события QueryUnload указывает причину возникновения события;

·         событие ReSize вызывается при любом изменении размеров формы.

Событие Click вызывается при нажатии на элемент управления. Событие Change вызывается при изменении текстового поля или после изменения позиции бегунка, или при смене носителя данных и т.п. Событие Timer вызывается по истечении установленного временного интервала.

Событие PathChange списка файлов происходит после изменения пути (свойство Path), а PatternChange – после изменения маски выбора файлов (свойство Pattern).



Порядком выполнения команд


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



Приложение «Иконка»


Предназначено для изучения OptionButton

и Image.

Создайте проект Pic1.vbp и форму Pic.

Создайте три элемента OptionButton. Озаглавьте их как показано на рис. 27. У первой из них установите свойство Value в “True”.

Создайте три элемента Image. С помощью свойства Picture загрузите в них любые три иконки.

Создайте кнопку Command1, с названием «Exit». Щёлкните по ней два раза и введите код:

Private Sub Command1_Click()

End

End Sub

Напишите следующий обработчик:

Option Explicit

Dim Button As Integer

Dim Shift As Integer

Dim x As Single

Dim y As Single

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)

If Option3.Value = True Then

Image3.Move x, y

End If

If Option2.Value = True Then

Image2.Move x, y

End If

If Option1.Value = True Then

Image1.Move x, y

End If

End Sub

Здесь во второй части кода, в зависимости от того, какая из OptionButton установлена (т.е. её свойство Value истинно), перемещается соответствующая иконка с помощью метода Move, в координаты щелчка мыши.

9.5 Приложение «Главная форма»

Это приложение предназначено для изучения вложенных MDI форм.

Создайте новый проект (Main1.vbp), в меню Project нажмите Add MDI form. Сохраните новую форму как Main.frm. Озаглавте её как «Главная форма».

С помощь редактора меню создайте меню:

&Фаил (mnuFile)

  

&Выход

(mnuExit)

&Дочернии формы

(mnuShow)

  

Показать калькулятор

(mnuCalc)

  

Показать проводник

(mnuCdir)

  

Показать редактор

(mnuPic)

  

- (mnuStep)

  

Показать все (mnuShowAll)

  

Очистить все (mnuClear)

Из меню Project выберете Add form, перейдите в появившимся окне на закладку Existing. Добавьте в проект формы Calc.frm, Cdir.frm, Pic.frm.

Измените у всех форм (кроме Main.frm) свойство MDIChild на «True». Это свойство определяет, что все эти формы будут подчинёнными по отношению к главной форме, и соответственно будут располагаться внутри её окна.

Добавьте следующие обработчики событий:

Private Sub MDIForm_Load()

Calc.Show


CDir.Show

Pic.Show

End Sub

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

Private Sub mnuCalc_Click()

Calc.Show

End Sub

Private Sub mnuCdir_Click()

CDir.Show

End Sub

Private Sub mnuPic_Click()

Pic.Show

End Sub

Эти три обработчика показывают подчинённую форму, в зависимости от выбранного пункта меню.

Private Sub mnuClear_Click()

Unload Calc

Unload CDir

Unload Pic

End Sub

Обработчик команды «Очистить  все»  закрывает  все  три  подчи-

 


Рис. 28                                                           Рис. 29

нённые формы.

Private Sub mnuShowAll_Click()

Calc.Show

CDir.Show

Pic.Show

End Sub

Обработчик команды «Показать все» открывает все три починённые формы.

Private Sub mnuExit_Click()

End

End Sub

Обработчик команды «Выход» закрывает приложение.


Приложение «калькулятор»


Для создания приложения запустите Visual Basic, и создайте новый проект Standart Application. Сохраните проект как Calc1.prj, а форму как Calc.frm.

В появившейся форме создайте 15 кнопок CommandButton.

В окне Properties из выпадающего списка выберете Command1, после этого найдите в том же окне свойство Caption и измените его значение на «1».

Повторите предыдущий шаг для кнопок Command2-Command10, подставляя вместо «1» цифры 2-9, 0.

Оставшиеся кнопки обозначьте как «С», «*», «-», «+», «=».

Расположите кнопки как показано на рис. 24.

Создайте элемент ввода текста TextBox. Расположите его вверху формы. Измените свойство Text на пустую строку.

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

Щелкните два раза на кнопке Command1. Появится окно редактора кода с заготовкой функции реакции на нажатие кнопки. Из левого выпадающего списка вверху окна выберете (General), курсор перейдёт на самое начало кода, где необходимо ввести следующий код:

Dim x As Double

Dim y As Double

Dim c

Dim rez As Double

Здесь объявляются переменные: х – первый операнд, у – второй операнд, с – вид операции между ними, rez – результат операции.

Приведите заготовку функции к виду:

Private Sub Command1_Click(Index As Integer)

x = Text1 + "1"

Text1 = x

End Sub

Повторите предыдущие 2 шага для всех кнопок с цифрами, заменяя во второй строке кода «1» на соответствующую для каждой кнопки цифру.

Для кнопки «С» функция должна содержать только оду строку: Text1=””. Это очистит поле ввода, которое в данном случае является «индикатором» калькулятора.

Для кнопок «+», «-», «*» код должен быть таким:

Private Sub Command12_Click()

c = "*"

y = x

Text1 = ""

End Sub

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

Для кнопки «=» следует ввести следующий код:

Private Sub Command15_Click(Index As Integer)

Select Case c

Case "+"

rez = y + x

Case "-"

rez = y - x

    

Рис. 24                                        Рис. 25

Case "*"

rez = y * x

End Select

Text1 = rez

End Sub

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

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



Приложение «Метроном»


Данное приложение служит для изучения таких элементов как Timer, Shape, Label и линейка прокрутки (ScrollBar).

Создайте новый прект Metronom1.vbp имя формы Metronom.frm.

Создайте линейку прокрутки HScrollBar. Установите его свойства следующими значениями: LageChange=100 это свойство определяет с каким шагом будет меняться значение параметра линейки прокрутки, при щелчке мышью между её стрелками и ползунком; Max=300 это максимальное значение параметра линейки прокрутки, оно достигается когда ползунок находится в крайнем правом положении; Min=1500 противоположное предыдущему свойство; SmallChange=25 это шаг изменения при нажатии на кнопки со стрелками по краям линейки; Value=1000 стартовое значение параметра.

Создайте Timer. Установите значение свойства Interval равное 1000.

Создайте Shape. Установите свайства: FillColor – белый, FillStyle – 0 Solid, Shape – 3 Circle.

Создайте три ярлыка (Label). Два из них расположите по краям линейки прокрутки и озаглавте в соответсвии с рисунком. Третий оизаглавте «1000» и поместите его посередине круга, установив цвет текста красный, а свойство BackStyle – 0 Transparent.

Щёлкнув два раза по линейки прокрутки введите следующий код:

Private Sub HScroll1_Change()

Timer1.Interval = HScroll1.Value

Label3.Caption = HScroll1.Value

End Sub

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

Private Sub Timer1_Timer()

Beep

If (Shape1.FillColor = 0) Then

Shape1.FillColor = RGB(255, 255, 255)

Else

Shape1.FillColor = RGB(0, 0, 0)

End If

End Sub

Этот код вызывается таймером через интервал времени, заданный в свойстве Interval, если свойство Enebled=True. Тогда издаётся звуковой сигнал и цвет заливки круга меняется на противоположный.

10 Контрольные вопросы

1. Дайте определение и назначение операционной системы.

2.     Перечислите и охарактеризуйте типы алгоритмических языков. Что такое транслятор?


3.       Что такое файловые системы?

4.       Что такое драйверы внешних устройств?

5.       Объясните основные характеристики операционных систем.

6.     Дайте определение сетевых операционных систем и перечислите их типы.

7.     Охарактеризуйте стандартные операционные системы, приведите примеры.

8.       Охарактеризуйте режимы операционной системы Windows.

9.       Объясните вытесняющую и кооперативную многозадачность.

10.    Что такое планирование, классы и уровни приоритетов?

11.    Что такое виртуальная память?

12.    Что такое постраничная подкачка?

13.    Объясните обмен сообщениями в Windows.

14.    Что такое виртуальные машины?

15.  Что такое интерфейс прикладного программирования Win32? Перечислите и охарактеризуйте библиотеки динамической загрузки.

16.  Перечислите причины включения

16-разрядных компонент в Windows 95/98.

17.  Объясните механизм шлюзования.

18.  Что такое реестр? Объясните работу в редакторе реестра.

19.  Перечислите и охарактеризуйте ключи реестра.

20.  Перечислите и охарактеризуйте основные элементы управления.

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

22.  Объясните как изменять свойства элементов управления.

23.  Перечислите и охарактеризуйте некоторые часто используемые свойства элементов управления.

24.  Что такое события? Приведите примеры.

25.  Объясните как описываются переменные в Visual Basic.

26.  Какие условные операторы Вы знаете?

27.  Какие Вы знаете операторы, управляющие циклом?

28.  Объясните, как создать меню с помощью редактора меню.

29.  Охарактеризовать группы меню Visual Basic.

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



11 Задания на лабораторные работы

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



Функция



Функция

1

сложение

2

вычитание

3

умножение

4

деление

5

сумма арифметической прогрессии

6

сумма геометрической прогрессии

7

синус

8

косинус

9

тангенс

10

котангенс

11

корень квадратный

12

корень кубический

13

корень пятой степени

14

в минус первой степени

15

в квадрате

16

в третьей степени

17

логарифм по основанию 2

18

логарифм по основанию 3

19

логарифм по основанию 5

20

е в степени

21

2 в степени

22

3 в степени

23

5 в степени

24

поменять знак

2. Создайте проводник со своим именем и отобразите в списке файлы определённого типа (по варианту А) и имеющих свойства (по варианту Б):



Тип



Тип



Тип



Свойство

А-1

*.txt

А-5

*.com

А-9

*.arj

Б-1

ReadOnly

А-2

*.doc

А-6

*.bat

А-10

*.bmp

Б-2

Archive

А-3

*.rtf

А-7

*.rar

А-11

*.jpg

Б-3

Hidden

А-4

*.exe

А-8

*.zip

А-12

*.gif

Б-4

System

3. Создайте редактор рисунков с возможностью рисования фигур (по варианту А) требуемого размера, и цвета (по варианту Б):



Фигура



Цвет

А-1

окружность

Б-1

красный

А-2

квадрат

Б-2

чёрный

А-3

прямая

Б-3

зелёный

А-4

эллипс

Б-4

синий

А-5

прямоугольник

Б-5

коричневый

А-6

пересеченные линии

Б-6

жёлтый

А-7

прямоугольный треугольник

Б-7

серый

4. Организуйте перемещение одной из трёх иконок по окну, в координаты щелчка мыши. Организуйте выбор иконки.

5.

Создайте Главную форму с дочерними MDI формами редактора, проводника и калькулятора. Создайте меню: Файл (Выход ), Дочерние формы (Показать калькулятор, Показать проводник, Показать редактор, Показать все, Очистить все).


Приложение «Paint»


В этом приложении рассматриваются способы рисования в форме и способы работы с меню. Внешний вид приложения показан на рис. 26.

Создайте новый проект, сохраните его как Paint1.vbp, а форму как Paint1.frm. В свойствах формы измените Caption на “Paint”, а в BackColor установите белый цвет.

Запустите редактор меню(Menu Editor, расположен в верхней панели инструментов, третий слева).

В поле Caption наберите «&Выход», в поле Name – «mnuExit». Нажмите кнопку Next. В списке снизу окна должна появится запись «&Выход». Знак амперсанда ставится перед тем символом, который будет выделен подчёркиванием, т.е. этот пункт меню может быть выбран при нажатии кнопки Alt и кнопки соответствующей подчёркнутой букве.

Теперь в поле Caption введите «&Да», в поле Name–«mnuExitYes». Для того чтобы получить вложенное меню, нажмите кнопку со стрелкой вправо, соответствующая строка в списке должна сместиться вправо. Нажмите кнопку Next. Введите команду меню «&Нет» с именем «mnuExitNo».

Введите команду меню «&Цвет» с именем «mnuColor». Это меню не должно быть вложенным в меню «Выход», поэтому нажмите кнопку со стрелкой влево. Введите в этом меню следующие вложенные команды: «&Красный» (mnuRed), «&Синий» (mnuBlue), «&Черный».

Для команды меню «&Черный», установите флажок Checked. Этот флажок обозначает будет ли данная команда меню «отмечена», т.е. будет ли возле неё стоять «галочка». В редакторе меню мы устанавливаем изначальное значение состояния меню, то которое будет при запуске. А при запуске активным устанавливается именно чёрный цвет.

Наберите в редакторе кода следующий код:

Option Explicit

Dim Button As Integer

Dim Shift As Integer

Dim x As Single

Dim Y As Single

Dim col As Integer

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, x As Single, Y As Single)

Paint1.CurrentX = x

Paint1.CurrentY = Y

End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, x As Single, Y As Single)

If Button = 1 Then


Line (Paint1.CurrentX, Paint1.CurrentY)-(x, Y), QBColor(col)

End If

End Sub

В первом участке кода объявляются необходимые переменные, такие как координаты x и y, цвет col, и другие служебные переменные.

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

Третий участок это обработчик события перемещения курсора мыши над формой, причём в него передаётся переменная Button, которая содержит значение зависящее от того, нажата ли кнопка мыши, и если да, то какая. В данном случае проверяется состояние левой кнопки мыши, если она нажата, то чертится линия от текущих координат, до координат положения курсора. При этом текущие координаты устанавливаются в конечную точку линии. QBColor оператор передающий процедуре Line необходимый код цвета, в зависимости от условного кода, являющегося его аргументом.

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

Добавьте обработчики событий выбора команд меню:

Private Sub mnuBlack_Click()

mnuBlue.Checked = False

mnuBlack.Checked = True

mnuRed.Checked = False

col = 0

End Sub

Private Sub mnuBlue_Click()

mnuBlue.Checked = True

mnuBlack.Checked = False

mnuRed.Checked = False

col = 1

End Sub

Private Sub mnuRed_Click()

mnuBlue.Checked = False

mnuBlack.Checked = False

mnuRed.Checked = True

col = 4

End Sub

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

   


Рис. 26                                                         Рис. 27

Напишите обработчик команды меню выхода из приложения:

Private Sub mnuExitYes_Click()

End

End Sub


Приложение «проводник»


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

Создайте новый проект Cdir1.prj, сохраните новую форму как Cdir.frm.



Приоритет каждого потока определяется по


·         классу приоритета процесса, которому принадлежит поток;

·         уровню приоритета потока внутри класса приоритета его процесса.

1.8.1 Классы приоритетов

Класс приоритета процесса и уровень приоритета потока определяют базовый приоритет потока. Уровни приоритетов Windows разделены на два класса:

·         реального времени (приоритеты от 16 до 31) — используется для выполнения основных функций операционной системы и обычно не применяется для приложений;

·         переменного приоритета (приоритет от 0 до 15) — определяет процессорный приоритет приложений; приоритет 0 возможен только для бесстраничного системного потока.


1.8.2 Уровни приоритетов

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

·         низкий — запускает приложения с уровнем приоритета 4;

·         обычный — запускает приложения с уровнем приоритета 7;

·         высокий — запускает приложения с уровнем приоритета 13;

·         реального времени — запускает приложения с уровнем приоритета 24.

1.9 Управление памятью

В Windows 98 и NT каждый процесс имеет собственное адресное пространство, что позволяет адресовать до 4 Гб памяти. Отметим, что Windows выделяет процессу 4 Гб адресов памяти, а не физического ОЗУ. Физическая память ограничена имеющимися системными ресурсами (ОЗУ и дисковое пространство). Windows выделяет каждому приложению 2 Гб адресов памяти, а другие 2 Гб резервируются для нужд ядра.

Большинство компьютеров не располагают 4 Гб ОЗУ, и по этой причине Windows использует механизм виртуальной памяти. Таким образом, Windows может перенести часть содержимого физической памяти на жесткий диск, когда объем доступного ОЗУ будет исчерпан. Этот процесс известен как подкачка (рис. 5).

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

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

1.9.1 Виртуальная память

Процессоры Intel, начиная с модели 80386, позволяют отобразить область физической памяти на любую область 32-разрядных адресов. Виртуальная память Windows использует этот механизм для того, чтобы любая программа вела себя так, будто она имеет собственное физическое ОЗУ.

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

1.9.2 Постраничная подкачка

Физическое и виртуальное (логическое) адресное пространство каждого процесса разделено на страницы — «кванты» памяти, размер которых зависит от компьютера. Например, для компьютеров х86 размер страницы составляет 4 Кб. Ядро может перемещать страницы памяти в страничный файл на диске (Pagefile.sys) и обратно: таким образом, управление памятью становится более гибким. Когда страница перемещается в физическую память, ядро обновляет таблицы страниц соответствующих процессов. Если ядру требуется место в физической памяти, оно вытесняет самые старые страницы физической памяти в страничный файл. Манипуляции ядра с физической памятью совершенно незаметны (прозрачны) для приложений, которые работают только со своими виртуальными адресными пространствами.

Рис. 5. Управление памятью в Windows

1.10 Выполнение приложений

В отличие от MS-DOS, Windows для управления приложениями использует модель сообщений. Сообщение генерируется всякий раз, когда происходит какое-то событие, например пользователь нажимает и отпускает клавишу на клавиатуре или передвигает мышь. Сообщение помещается в так называемую очередь сообщений. Активное приложение постоянно проверяет свою очередь и извлекает из нее поступившие сообщения.


Private Sub Command_Click()


For I = Lbound(aArray) To Ubound(aArray)

Print aArray (I)

Next I



Программа инсталляции


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

После того как SETUP.EXE скопирует на диск файлы, указанные в SETUP.LST, компьютер может выполнять приложения для Visual Basic. Для этого SETUP.EXE вызывает распакованный файл SETUP1.EXE.

Этот файл представляет собой программу на Visual Basic, исходный код которой находится в подкаталоге \SETUP1 каталога \SETUP.

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

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



Public Const Pi=


Константы можно объявлять с указанием типа данных, например Const nName As String = "Петров"



соответствующей пиктограмме панели элементов.


соответствующей пиктограмме панели элементов. На кнопке появиться надпись (свойство Caption) Command1. Текст стандартной надписи необходимо изменить. Для этого следует щёлкнуть мышью в окне свойств Properties и выбрать в нём строку Caption. По мере ввода слова "Приветствие" вводимый текст появится на кнопке. Двойным щелчком на кнопке Command1 откройте окно кода для ввода операторов программы. Самый простой оператор это Print, при помощи которого можно выводить текст. Введите между строками Sub (начало процедуры) и End Sub (конец процедуры) команду Print "Приветствуем вас в среде Visual Basic". Первая программа готова. Чтобы увидеть результат её работы, запустите программу. Для этого щёлкните на кнопке Start
 на панели инструментов или нажмите [F5]. После запуска программу можно протестировать щелчком на кнопке Приветствие в окне формы (рис. 23). Завершите выполнение программы с помощью кнопки Stop
 на панели инструментов Visual Basic. Полученный проект нужно сохранить. Для этого в меню File выбираем Save Project. В начале появится окно для сохранения формы (форму сохраняем с расширением .frm), а затем – окно для сохранения проекта (проект сохраняем с расширением .vbp).
Таким образом, мы создали при помощи Visual Basic первое приложение Windows.

Библиотеки API Win


 

USER32: Us.er32.dll и User.exe создают и контролируют окна на экране, выполняя все запросы по созданию, перемещению, изменению размеров и уничтожению окон. User.exe, кроме того, обрабатывает запросы, относящиеся к значкам и другим элементам интерфейса пользователя, а также переадресует события, порожденные различными устройствами ввода, соответствующим приложениям.

GD132: Gdi32.dU и Gdi.exe контролируют интерфейс графических устройств

(Graphics Device Interface, GDI). GDI выполняет графические операции при создании изображения на системном дисплее и других устройствах, включая:

·         вывод на экран;

·         вывод на принтер;

·         включение/отключение пикселов.

KERNEL32: Kemel32.dll

выполняет базовые функции операционной системы, в том числе:

·         управление памятью;                    • файловый ввод/вывод;

·         загрузку программы;                    • выполнение программы.

32- и 16-разрядные компоненты: В Windows 95/98 включены 16-разрядные версии User, GDI и Kernel. Комбинация 16-разрядного и 32-разрядного кода позволяет сохранить совместимость с существующими приложениями и драйверами и одновременно увеличить производительность системы по сравнению с Windows 3.1. Windows 95/98 использует 32-разрядный код везде, где это увеличивает производительность не в ущерб совместимости. Для включения в Windows 95/98 16-разрядных компонентов есть три основные причины:

·         код для 16-разрядных систем обеспечивает обратную совместимость с приложениями и драйверами, разработанными для Windows 3.1;

·         в некоторых случаях 16-разрядный код выполняется быстрее, чем аналогичный 32-разрядный;

·         32-разрядный код требует больше памяти, чем эквивалентный 16-разрядный.

Одна из основных задач Windows 95/98 – эффективная работа на компьютерах с ограниченным объемом ОЗУ, и применение 16-разрядного кода способствует решению этой задачи.



Очереди сообщений


Каждый поток в Win32-приложении имеет собственную очередь сообщений и, значит, никак не влияет на поведение других работающих приложений. Если Winl6- или Win32-пpилoжeниe потерпит крах, остальные Win32-пpилoжeния будут действовать на основе вытесняющей многозадачности и смогут принимать поступающие сообщения из своих очередей.

В целях совместимости все 16-разрядные Windows-приложения под управлением Windows 95/98 используют общую очередь сообщений. Очевидно, если с одним из них что-то произойдет, остальным будет перекрыт доступ к очереди до тех пор, пока программа, вызвавшая проблему, не будет завершена (рис. 6).

1.10.3 Виртуальные машины

Windows NT выполняет приложения в рамках виртуальных машин (Virtual Machine, VM). Фактически VM– это создаваемая операционной системой среда для выполнения приложения, которая полностью эмулирует все ресурсы компьютера. С точки зрения приложения, виртуальная машина – это полноценный компьютер, предоставляющий ему все имеющиеся

ресурсы (рис. 7).



Приоритеты потоков


Любой процесс содержит хотя бы один поток. Каждый процесс 16-разрядного Windows-приложения или программы MS-DOS имеет только один поток, тогда как процессы 32-разрядных Windows-приложений могут включать их несколько.

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


1.7 Вытесняющая и кооперативная многозадачность

Существуют два типа многозадачности: кооперативная (не вытесняющая) и вытесняющая (рис. 3). В кооперативной многозадачной среде

(например. Windows 3.1) контроль над процессором никогда не отбирается у задачи – приложение должно самостоятельно отказаться от контроля над процессором, чтобы другое приложение заработало.

Вытесняющая многозадачность

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

Windows 95 и Windows NT используют вытесняющую многозадачность для MS-DOS и 32-разрядных Windows-приложений.


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



Процесс планирования


Уровни приоритета находятся в диапазоне от 0 (наименьший приоритет) до 31 (наибольший приоритет). Поток с наибольшим приоритетом получает процессор в свое распоряжение (рис. 4).



Виртуальные машины


Каждое 16-разрядное

Windows- и MS-DOS-приложение под управлением Windows NT выполняется в отдельном адресном пространстве, называемом виртуальной DOS-машиной (Virtual DOS Machine, VDM). При этом обеспечивается защита программы, a Windows NT может реализовать вытесняющую многозадачность для всех сервисов операционной системы и приложений.

В Windows 98 предусмотрено выполнение MS-DOS-приложений в отдельных VDM, однако, поскольку часть памяти доступна всем виртуальным машинам, MS-DOS-приложения представляют собой потенциальную угрозу стабильности системы.

1.11 Интерфейс прикладного программирования Win32

Интерфейс прикладного программирования (Application Programming Interface, API) Win32 обеспечивает приложениям доступ ко всему спектру функций операционных систем семейства Windows. Функции, сообщения и структуры Win32 формируют последовательный и единообразный API для

Windows 98 и Windows NT. Средства API Win32 позволяют разрабатывать приложения, успешно работающие на всех платформах и в то же время при надобности использующие уникальные особенности любой из них.

Многие функции API интегрированы в состав таких программ, как Visual Basic. Например, функцию

API Win32 MessageBox можно вызвать непосредственно или через функцию

Visual Basic MsgBox. Средствами Visual Basic обычно пользоваться легче, однако во многих случаях разработчики найдут непосредственное применение и самим функциям API Win32.

Базовый код API Win32 содержится в трех библиотеках динамической загрузки (Dynamic Link Library, DLL): USER32, GDI32 и KERNEL32.



Вытесняющая и кооперативная многозадачность


Windows NT применяет вытесняющую многозадачность при выполнении 16-разрядных приложений Windows и MS-DOS. Windows NT обеспечивает полную защиту памяти 16-разрядных приложений, так как каждое из них выполняется в рамках собственной виртуальной машины. Windows 98, напротив, использует кооперативную многозадачность для всех 16-разрядных приложений – это необходимо для сохранения совместимости с 16-разрядными Windows-программами, которые сами контролируют свое выполнение.

1.8 Планирование

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



Select Case Animal


Case "кролик"

Food ="капуста"

Case "лев"

Food ="мясо"



Select Case Проверочное выражение


[Case значение 1

[Операторы 1]]

[Case значение 2

[Операторы 2]]

[Case Else

[Операторы N]]



Select Case Speed


Case 0, 1, 2

Print "Медленно"

Case 3 To 30

Print "В пределах нормы"

Case 30 To 40

Print "Небольшое превышение"

Case Is >= 50

Print "Большое превышение"

Case Else

Print "Наибольшее превышение"



Сетевые операционные системы


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

Сетевые операционные системы бывают одноранговыми и серверными. Серверные

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

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

Одноранговые сетевые ОС применяются на ПК самостоятельно в виде отдельньк программных средств, либо входят в состав пакетов, другую половину которых представляют программы, обслуживающие мощные компьютеры управления сетями, – серверы. Операционные системы, например OS/2 WarpConnect, Windows NT Workstation, Windows for Workgroups, Artisoft LANtastic Network Operating System, Performance Technologies PowerLan, — одноранговые.

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

относятся Novell NetWare, Windows NT Server, OS/2 LAN Server, OS/2 SMP, VINES, UNIX Ware, SCO Open Server, Solans.

Операционная система Windows 2000 Server базируется на платформе Windows NT Server, в отличие от которой имеет более высокую производительность и надежность. В состав семейства входят. Windows 2000 Server – для серверов рабочих групп, Windows 2000 Advanced Server – для приложений и более надежных серверов, Windows 2000 Datacenter Server –для наиболее ответственных систем обработки данных.

1.6 Как Windows выполняет программный код

Операционная система Windows для поддержки своей эффективности и целостности использует два режима: пользователя и ядра. Архитектура процессора Intel 80386 и следующих моделей определяет четыре уровня привилегий, называемых кольцами, для защиты кода и данных системы от случайного или преднамеренного изменения со стороны менее привилегированного кода. Такой метод выполнения кода называется моделью защиты Intel.


Уровень привилегий 0, известный как режим ядра,

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

Операционные системы семейства Windows

используют только кольца 0 и 3 (рис.1).

Режим ядра (кольцо 0) — это наиболее привилегированный режим. Работая в нем, код имеет прямой доступ ко всей аппаратуре и всему адресному пространству. Программное обеспечение, выполняющееся в режиме ядра:

·

имеет прямой доступ к аппаратному обеспечению;

·         имеет доступ ко всей памяти компьютера;

·         не может быть вытеснено в страничный файл на жестком диске;

·         выполняется с большим приоритетом, чем процессы режима пользователя.

В частности, в кольце 0 выполняется код ядра операционных систем Windows 95/98 и Windows NT. Поскольку компоненты режима ядра защищены архитектурно, процессор предотвращает их изменение другой программой. Хотя кольцо 0 предоставляет максимальную защиту, не следует запускать в кольце 0 что попало – ведь компоненты этого режима имеют доступ ко всей системе. Если программный компонент в режиме ядра потерпит крах, это может разрушить всю систему.

Поскольку одна из задач Windows 98 – максимальная обратная совместимость, многие старые 16-разрядные драйверы и приложения используют прямой доступ к аппаратуре. Windows NT не предоставляет таким приложениям требуемый уровень доступа, поэтому зачастую они не могут работать под управлением Windows NT Workstation и Windows NT Server.

Режим пользователя

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

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



·         Не имеют прямого доступа к аппаратуре.

Это защищает систему от неисправных приложений или неавторизованного доступа.

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

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

Механизм виртуальной памяти позволяет использовать пространство на жестком диске как дополнительное ОЗУ. О виртуальной памяти подробно рассказано чуть позже в этой главе.

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

Приложение, разработанное для Windows, состоит из одного или более процессов (рис. 2). Процесс принадлежат адресное пространство и выделенные ресурсы, а также один или более потоков, выполняющихся в его контексте.

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


Шлюзование


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

Эта операция выполняется, когда операционная система преобразует вызов 16-разрядной функции в вызов 32-разрядной. Процессы Windows 95 и Windows NT не могут содержать одновременно и 16-разрядный, и 32-разрядный код. Шлюз позволяет коду с одной стороны границы вызывать код с другой ее стороны. Каждая платформа использует один или несколько механизмов шлюзования:

·

механизм базовых шлюзов позволяет 16-разрядному Windows-приложению в системе под управлением Windows 95 и Windows NT загрузить и вызвать 32-разрядную библиотеку;

·         с помощью механизма плоских шлюзов,

реализованного только в Windows NT, Win32-npиложениe загружает и вызывает 16-разрядную библиотеку и наоборот.

1.13 Реестр Windows

Реестр – это унифицированная база данных, содержащая информацию об аппаратной и программной конфигурации локального компьютера. Здесь же хранятся данные системы и приложений. Реестр выполняет ту же роль, что и INI-файлы в Windows 3.1. Windows 95/98 по-прежнему позволяет использовать INI-файлы, однако в первую очередь они обеспечивают обратную совместимость. Преимущества реестра – возможность присоединить к одному ключу множество элементов различных типов. Кроме того, сетевые средства обеспечивают доступ к реестру по сети для удаленного администрирования и диагностики.

1.13.1 Редактор реестра

В Windows 95/98 и Windows NT реестр можно просматривать и редактировать средствами редактора реестра REGEDIT.EXE, расположенного в папке Windows (рис. 8).

Рис. 8

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


1.13.2 Структура реестра

Реестр — это древовидная иерархическая база данных (рис. 9). Он хранится в двух файлах, состав которых определяется конфигурацией системы. Обычно их два: один содержит настройки, специфичные для пользователя (файл USER.DAT), а другой — настройки, специфичные для компьютера (обычно SYSTEM. DAT).

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

Компонент ключа

Обязательный


Система меню Visual Basic


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

Рис.20

6.1.         Команды меню File (файл) относятся к наиболее общим аспектам работы с данными, позволяют открывать и сохранять файлы:

New Project (новый проект) – открывает окно диалога, с помощью которого можно создать новый проект. При этом пользователю будет предложено выбрать тип проекта.

Open Project (открыть проект) – данная команда открывает и загружает существующий проект. Стандартный диалог Open Project содержит две вкладки(Existing и Recent), которые позволяют выбирать либо один из вообще существующих проектов, либо один из последних, с которыми работал пользователь.

Add Project (добавить проект) – создаёт или открывает ещё один проект, не закрывая текущий. При этом появляется окно диалога, предлагающее выбрать либо тип нового проекта (вкладка New), либо существующий проект, который необходимо открыть параллельно уже открытым (вкладки Existing

и Recent). Таким образом можно открыть несколько проектов одновременно и создать группу проектов.

Remove Project (удалить проект) – закрывает текущий проект.

Save Project/Save Project Group (сохранить проект/группу проектов) – сохраняет проект или группу проектов на диске.

Save Project As/Save Project Group As (сохранить проект/группу проектов под именем) – сохраняет проект или группу проектов под новым именем.

Save…(сохранить…) – сохранить текущий элемент проекта на диске. Многоточие представляет здесь имя элемента проекта, который является текущим.

Save…As (сохранить… под именем) – сохранить текущий элемент проекта на диске под новым именем.

Print (печать) – открывает окно диалога, позволяющее вывести на принтер форму или программный код.

Print Setup (установка параметров печати) – открывает окно диалога, позволяющее изменить параметры печати.


Make…(создать исполняемый файл) – создаёт исполняемый (EXE, DLL или OCX)файл текущего проекта (многоточие представляет здесь имя файла). При этом открывается окно диалога Make Project, позволяющее задать имя исполняемого файла, а также открыть диалог Project Options (параметры проекта), где в свою очередь можно задать параметры компиляции (например, компиляция в машинный код или в Р-код и др.).

Make Project Group (создать исполняемые файлы для проектов группы) – создаёт исполняемые (EXE, DLL или OCX)файлы всех проектов текущей группы.

Список последних открытых проектов – здесь в меню File следует список проектов, которые открывались последними (до четырёх). Открыть любой из них можно щелчком на соответствующем пункте.

Exit (выход) – закрывает окно Visual Basic.

6.2.         В меню Edit (правка) собраны команды, осуществляющие операции буфера обмена Windows, команды редактирования текста и экранной формы, а также некоторые другие:

Undo (откат) "откатывает" (отменяет) последнюю выполненную операцию, т. е. восстанавливает состояние, которое имело место до неё.

Redo (откат отката) – восстанавливает состояние, имело место перед выполнением команды Undo.

Cut (вырезать) – удаляет выделенную область и копирует её буфер обмена. Эта и остальные операции буфера выполнимы как применительно к тексту, так и к управляющим элементам при редактировании экранной формы.

Copy (копировать) – копирует выделенную область в буфер обмена.

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

Paste Link (специальная вставка) – устанавливает связь OLE и DDE-элементов, находящихся на редактируемой форме, с OLE и DDE-объектами из других приложений.

Delete (удалить) – удалить выделенную область или (если ничего не выделено) символ справа от курсора. При редактировании формы, если ничего не выделено, будет удалён текущий элемент.

Select All (выделить всё) – выделяет всё содержимое текущего окна.



Find (поиск) – открывает диалоговое окно, позволяющее найти первое или все вхождения строки символов в текстовом окне.

Find Next (продолжить поиск) – продолжает поиск начатый командой Find.

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

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

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

Insert File (вставить файл) – открывает окно диалога, позволяющее открыть текстовый файл и вставить его содержимое в текущей позиции курсора.

List Properties/Methods (список свойств/методов) – открывает в окне кода список свойств и методов, определённых для объекта, имя которого предшествует точке(.). Свойство или метод можно при этом выбрать и вставить после точки(.).

List Constants (список констант) – открывает в окне кода список констант, которые могут быть присвоены в качестве значения свойству, имя которого предшествует знаку равенства(=). Константу можно при этом выбрать и вставить справа от знака равенства(=).

Quick Info (синтаксическая подсказка) - даёт краткую подсказку относительно синтаксиса функции, процедуры или метода, на имени которого находится курсор в окне кода.

Parameter Info (подсказка о параметрах) – даёт краткую подсказку относительно параметров функции, процедуры или метода, на имени которого находится курсор в окне кода.

Bookmarks (закладки) – подменю содержит четыре команды, которые позволяют устанавливать и убирать закладки, а также перемещаться между ними в окне кода.

6.3.         Команды меню View (вид) позволяют открывать или делать видимыми различные окна, а также получать вспомогательную информацию. Команды меню View:

Code (окно кода) – открывает или делает видимым окно кода, относящееся к текущей форме или модулю.

Object (окно экранной формы) – открывает или делает видимым окно формы, которая является текущей.



Definition (переход на определение) – переходит на то место в окне кода, где определяется переменная или процедура, на имени которой находится курсор.

Last Position (возврат) – позволяет вернуться в то место кода, которое непосредственно перед этим подвергалось редактированию. Visual Basic запоминает 8 таких позиций.

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

Immediate Window (окно отладочной информации) – открывает окно Immediate,

используемое при отладке программ.

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

Watch Window (окно отслеживаемых выражений) – открывает окно Watches, где при отладке программ отслеживаются значения выражений, определённых пользователем.

Call Stack (просмотр стека) – служит для просмотра последовательности вызовов процедур, которая приводит к текущему состоянию программы.

Project Explorer (окно проекта) – открывает окно проекта.

Properties Window (окно свойств) – открывает окно свойств.

Form Layout Window (окно вида формы на экране) – открывает окно, отображающее положение формы на экране, каким оно будет при выполнении программы.

Property Pages (страницы свойств) – открывает окно диалога с несколькими вкладками, дающими доступ к свойствам выбранного управляющего элемента.

Toolbox (коллекция инструментов) – открывает или делает видимым окно коллекции инструментов.

Color Palette (палитра) – открывает окно диалога, позволяющее выбрать цвет текущего элемента или формы.

Toolbars (панели инструментов). Это подменю содержит пять команд, управляющих наличием на экране панелей инструментов Visual Basic, а также команду Customize (настройка), которая позволяет создать новую панель инструментов или изменить настройки IDE.

6.4.         В меню Project (проект) собраны команды, предназначенные для управления проектом. Большинство команд этого меню предназначено для включения в состав текущего проекта нового элемента. Каждая Add – команда открывает окно диалога, которое позволяет создавать и включать в состав проекта новый элемент (или, не создавая нового, выбрать и включить в проект существующий элемент). Команды, входящие в меню Project:



Add Form (добавить форму) – открывает окно диалога, позволяющее включать в состав проекта новую или существующую форму.

Add MDI Form (добавить MDI-форму). Открывает окна диалога, позволяющие включать в состав проекта новую или существующую материнскую MDI-форму. Проект может содержать только одну материнскую MDI-форму, поэтому после её включения данная команда становится недоступной.

Add Module (добавить программный модуль) – позволяет включать в состав проекта новый или существующий программный модуль.

Add Class Module (добавляет модуль классов) – позволяет включать в состав проекта модуль, содержащий определения классов.

Add User Control (добавить элемент, определяемый пользователем). Visual Basic разрешает пользователю создавать управляющие элементы. Для включения таких элементов в состав проекта предназначена данная команда.

Add Property Page (добавить страницу свойств) – позволяет включить в состав проекта страницу свойств. Visual Basic даёт возможность создавать страницы свойств для новых или существующих определяемых пользователем управляющих элементов.

Add User Document (добавить пользовательский документ). Эта команда доступна только при работе над ActiveX –элементом (проекты типа ActiveX EXE или ActiveX DLL). Она позволяет включить в состав проекта пользовательский документ, который предназначен для взаимодействия с программой Internet Explorer или другим броузером, поддерживающим технологию ActiveX.

Add ActiveX Designer (добавить конструктор ActiveX). Команда становится доступной после того, как диалоге Components (меню Project) будет подключён хотя бы один конструктор ActiveX.

Add File (добавить файл) – включает существующий файл в состав проекта, при этом один и тот же файл может быть включён в состав нескольких проектов. Любые изменения, внесённые в файл, отразятся во всех проектах одновременно.

Remove… (исключить…) – в результате выполнения этой команды соответствующий элемент будет исключён из состава проекта. Многоточие представляет текущий элемент проекта.



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

Components (компоненты) – открывает окно диалога, позволяющее для данного проекта включать в состав коллекции инструментов управляющие элементы, конструкторы и другие объекты (например, документы Word).

Properties (свойства проекта …). Многоточие представляет имя текущего проекта. Открывает окно свойств проекта, позволяющее их изменить. Диалог состоит из четырёх вкладок:

General (общие) –эта вкладка содержит наиболее общие свойства проекта: имя проекта, его тип, стартовый объект и др.

Make (сборка) – устанавливаются параметры сборки проекта: имя исполняемого файла, параметры командной строки компилятора и др.

Compile (компиляция) – на этой вкладке можно установить параметры компиляции- такие, как, например, режим компиляции (в Р-код или в машинный код), вид оптимизации кода (по скорости или размеру)и др.

Component (компонент) – параметры определяют режим старта проекта (используется при создании ActiveX–элементов).

6.5.         Меню Format. Команды и подменю этого меню предназначены для форматирования уже размещённых на форме управляющих элементов–под форматированием понимается изменение размеров и позиции элементов, а также их выравнивание. Меню Format содержит следующие подменю:

Align (выровнять) – это подменю содержит ряд команд, предназначенных для выравнивания выделенной группы элементов, все команды данного подменю доступны, если на форме выделена группа (не менее двух) управляющих элементов, кроме команды Тo Grid;

Make Same Size (сделать одинакового размера) подменю содержит команды, которыми можно уравнять размеры выделенных элементов (при этом за "образец" берётся элемент, выделенный последним – элемент с тёмными размерными маркерами);

Size to Grid (размеры по сетке) в результате выполнения этой команды размеры выделенных элементов будут изменены так, чтобы их вертикальные и горизонтальные грани совпадали с ближайшими линиями сетки;



Horizontal Spacing/Vertical Spacing (промежутки по горизонтали/промежутки по вертикали) – эти два подменю содержат идентичные наборы команд, предназначенных для изменения свободных промежутков между выделенными элементами по горизонтали/вертикали;

Center in From (в центр формы) – две команды этого подменю позволяют переместить центры выделенных элементов на центральную, вертикальную или горизонтальную линию формы;

Order (план) – меняет положение выделенных элементов относительно остальных элементов формы;

Lock Controls (блокировка) – управляющие элементы, размещённые на текущей форме, блокируются – переместить их с помощью мыши невозможно.

6.6.         В меню Debug (отладка) собраны команды, используемые при отладке программы и поиске ошибок, которые позволяют управлять процессом выполнения программы и наблюдать за её состоянием. Debug включает в себя следующие команды: Step Into (шаг), Step Over (шаг через процедуру), Step Out

(шаг из процедуры), Run To Cursor (выполнять до курсора), Add Watch (добавить отслеживаемое выражение), Edit Watch (редактировать отслеживаемое выражение), Quick Watch (просмотр текущего значения), Toggle Breakpoint (установить/снять точку разрыва), Clear All Breakpoints

(снять все точки разрыва), Set Next Statement (задать следующий оператор), Show Next Statement (показать следующий оператор).

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

Start (пуск) – запускает программу.

Start With Full Compile (пуск с полной компиляцией) – осуществляет полную компиляцию проекта и запускает программу.

Break (прерывание) – прерывает выполнение программы и переводит IDE в режим прерывания(режим пошаговой отладки).

End (останов) – завершает выполнение программы.

Restart (повторный пуск) – перезапускает выполняющуюся программу, при этом программа стартует с начала, все переменные заново инициализируются.



6.8.         Меню Tools (инструменты) – позволяет редактировать информацию о точках наблюдения, которые используются при отладке программы.

Add Procedure (создать процедуру) – открывает окно диалога, помогающее программисту создать процедуру, функцию, свойство или событие.

Procedure Attributes (атрибуты) – позволяет установить атрибуты для свойств и методов объекта.

Menu Editor

(редактор меню) – открывает окно редактора меню, позволяющее присоединить меню к текущей форме.

Options (параметры) – открывает окно диалога (шесть вкладок), позволяющее менять параметры и настройки IDE.

6.9.         Меню Add-Ins (внешние утилиты, запускаемые из среды IDE) – позволяет расширять возможности IDE Visual Basic, а так же позволяет производить запуск дополнительных компонентов:

Data Manager (управление данными).

Report Designer (проектировщик отчётов), в качестве которого используется генератор отчётов Crystal Report для Visual Basic.

Add-Ins Manager (администратор внешних утилит),который даёт возможность включать в это меню новые команды.

6.10.       Меню Window (окно) – это стандартное для любого Windows-приложения меню, содержащее стандартные команды управления окнами: Split (разбивка); Tile Horizontally (горизонтальная черепица); Tile Vertically (вертикальная черепица); Cascade

(каскад); Arrange Icons (расположить значки); Window List (список окон).

6.11. Команды меню Help (справка) относится к справочной системе Visual Basic и обеспечивают доступ к ней: Books Online ("онлайновая" справка); Obtaining Technical Support (техническая поддержка); Microsoft on the Web – список WWW-адресов, по которым имеющий доступ к Internet пользователь может получить полезные сведения о Visual Basic (доступ возможен непосредственно из среды Visual Basic); About Microsoft Visual Basic

(о программе Visual Basic).


Создание меню


Создание меню осуществляется с помощью редактора меню, окно которого (рис. 18) можно открыть нажатием комбинации клавиш [Ctrl+E] или с помощью кнопки

 на панели инструментов, или выполнив команду Menu Editor… меню Tools. В поле Caption вводится заголовок пункта меню, который будет виден в строке меню. Любой пункт меню может выполняться по комбинации "горячих" клавиш Alt и какой-либо символ из заголовка, если перед этим символом в заголовке поставить знак '&' (например, для заголовка &File комбинацией "горячих" клавиш будет Alt-F). В реальном меню этот символ будет подчёркнут. В поле Name

вводится имя пункта меню, которое должно состоять из: префикса mnu, указывающего, что это меню; сокращённых имён родительских меню, если это подменю; собственного имени пункта меню. Например, Команда меню File – Open – Text, будет иметь имя mnuFOText. Меню строится иерархически, по уровням. Например, для проекта меню, показанного на рис. 18 будет соответствовать реальное меню в окне проекта, показанное на рис. 19.

Для работы с конкретным пунктом меню, его необходимо выделить щелчком мыши в списке окна MenuEditor (рис. 18). Кнопка Next переводит выделение на следующий элемент в списке. С помощью кнопки Insert можно вставить в список пунктов меню пустую строку. Удалить пункт меню можно, нажав кнопку Delete. С помощью кнопок

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

     

Рис.  18                                                 Рис. 19

Каждому элементу меню можно присвоить некоторые свойства как в окне Menu Editor, так и в самой программе. Свойство Visible позволяет отображать или скрывать отдельные элементы меню. Если свойство Enabled принимает значение False, то текст надписи подсвечивается серым цветом и пользователь не может выполнить эту команду меню. Свойство Checked позволяет пометить выбранный элемент меню галочкой.


Для пользователя будет удобнее, если Вы:

·         сделаете не более трёх уровней меню;

·         после названия пункта меню поставьте три точки, если в случае его выполнения открывается диалоговое окно;

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

Для написания кода программы, который будет выполняться при выполнения пункта меню, щёлкните по этому пункту меню. Появится окно с именем проекта, названием формы, на которой находится меню, и надписью (Code). Между заголовком процедуры обработки выполнения пункта меню ("Private Sub" имя пункта меню "_Click()") и концом процедуры ("End Sab") необходимо написать код программы.






Создание простейшего приложения Visual Basic


Для того чтобы создать приложение в среде Visual Basic нужно, во-первых, запустить Visual Basic, нажав на значок

.

Во-вторых, в появившемся окне (рис. 21) выбрать тип создаваемого приложения, например Standard EXE. После запуска Standard EXE на мониторе появится окно формы, которое является главным элементом приложения (рис. 22). Форма представляет собой контейнер для элементов управления. При запуске Visual Basic открывающаяся на экране форма не содержит элементов управления. После щелчка на пиктограмме требуемого элемента управления курсор мыши принимает форму крестика. Теперь нужно указать в форме место положение элемента управления, нажать левую кнопку мыши и, не отпуская её, установить размер элемента. После достижения нужного размера кнопка отпускается и в форме появляется выбранный элемент управления. После запуска Standard EXE на экаране, кроме окна формы, появятся панель элементов управления General, окно проекта(Project-Project1) и окно свойств Properties (рис. 22). В окне проекта мышью выделяем Project1 (Project1), а в окне свойств появляется надпись (Name) напротив неё пишем имя будущего проекта и нажимаем Enter. Далее в окне проекта дважды щёлкаем мышью по надписи Forms, ниже появляется Form1 (Form1). В окне свойств напротив (Name) щёлкаем мышью и вместо Form1 пишем имя будущей формы, затем в этом же окне выбираем Caption и проделываем тоже самое.

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

Сначала поместите в форму элемент управления, в данном случае кнопку   (CommandButton).   Это  выполняется  двойным  щелчком  на

 

Рис. 21                                                Рис. 23



Стандартные операционные системы


Наиболее известными операционными системами общего назначения являются Microsoft DOS, Microsoft Windows 95/98, Windows 2000 Professional, Microsoft Windows NT, IBM OS/2, AT&T UNIX.

·       MS DOS – это 16-разрядная, однопользовательская, однопроцессорная операционная система, позволяющая работать только в реальном режиме работы в адресном пространстве до 640 Кбайт. Работа с DOS рассмотрена в следующей главе.

·       Windows 95/98 – 32-разрядные, многопользовательские, многозадачные операционные системы, которые позволяют работать в защищенном режиме с процессорами семейства Intel.

·       Windows 2000 Professional – 32-разрядная, многопользовательская, многозадачная, многопроцессорная операционная система, работающая в защищенном режиме. В отличие от Windows 98, располагает системой безопасности, средствами управления и обеспечения надежности, характерными для Windows NT.

·       Windows NT – 32-разрядная, многопользовательская, многозадачная, переносимая, многопроцессорная операционная система, работающая в защищенном режиме. Имеет встроенные сетевые возможности и средства обеспечения безопасности.

·       OS/2 – 32-разрядная, многопользовательская, операционная система, предназначенная для работы с процессорами семейства Intel. Поддерживает многозадачность, работает в защищенном режиме, имеет встроенные сетевые возможности.

·       UNIX – 32-разрядная, многопользовательская, многозадачная, переносимая операционная система, располагающая встроенными сетевыми средствами ОС UNIX реализована для различных аппаратных платформ. Разновидности этой ОС LINUX (Intel), AIX (IBM), A/UX (Macintosh), Coherent (Intel), NeXTSTEP (Intel RISC), Xenix (Intel), UnixWare (Intel), ULTRIX (DEC) и др.



Интерфейс прикладного программирования


1.5.2 Сетевые операционные системы                                                        9

1.6 Как Windows выполняет программный код                                        10

1.7 Вытесняющая и кооперативная многозадачность                           13

1.8 Планирование                                                                                             14

1.8.1 Классы приоритетов                                                                              14

1.8.2 Уровни приоритетов                                                                              15

1.9 Управление памятью                                                                                 15

1.9.1 Виртуальная память                                                                              15

1.9.2 Постраничная подкачка                                                                       15

1.10 Выполнение приложений                                                                      17

1.10.1 Обмен сообщениями в 16-разрядных версиях Windows            17

1.10.2 Обмен сообщениями в Windows 98                                                  17

1.10.3 Виртуальные машины                                                                         18

1. 11 Интерфейс прикладного программирования Win32                      19

1.12 Шлюзование                                                                                              20

1.13 Реестр Windows                                                                                         21

1.13.1 Редактор реестра                                                                                  21

1.13.2 Структура реестра                                                                                               21

1.13.3 Модификация реестра Windows                                                       24


Свойства элементов управления


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

Задавать и считывать свойства можно программно, т.е. при выполнении приложения. Синтаксис установления и считавания свойства: имеет следующий вид:

[Форма.]Объект.Свойство = Значение и

Значение = [Форма.]Объект.Свойство.

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

Рис. 17

Для установления значения свойства элемента управления при проектировании щелчком мыши выделите этот элемент на форме так, чтобы вокруг него появились 8 синих квадратиков. В окне свойств Properties (рис. 17) в заголовке к слову Properties добавится имя этого элемента, а в строке, расположенной ниже появится его имя (жирным шрифтом) и его тип. На закладке Alphabetic окна Properties будет размещён список свойств. В левой колонке  расположены названия свойств, а в правой – значения, которые можно изменять. При выборе свойства, внизу окна Properties появится справка о выбранном свойстве.

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

, которая появится справа

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

, нажав которую появится диалог.

Закладка Categorized отличается от Alphabetic тем, что некоторые свойства объединены в группы. Названия групп выделены жирным шрифтом, а слева в квадратике стоит знак минус, если группа открыта, или плюс – если закрыта. Щёлкните по знаку плюс и после названия группы свойств появится список. Если щёлкнуть по знаку минус, то список исчезнет.

Свойства Top и Left задают координаты верхнего левого угла элемента управления, а свойства Height и Width – его высоту и ширину. Эти свойства определяют позицию элемента управления и используют по умолчанию в качестве единицы измерения twip (Твип – это экранно-независимая единица измерения, равная 1/20 точки принтера и гарантирующая независимость отображения элементов приложения от разрешения дисплея). Также размеры и положение элементов управления можно изменять при проектировании с помощью мыши. Установите курсор мыши на элементе управления, находящемся на форме, и, держа нажатой левую кнопку мыши, ведите отображение элемента в новое место. Для изменения размеров элемента управления наведите курсор мыши на синий квадратик, находящийся на границе выделенного элемента управления. Когда курсор мыши примет вид двунаправленной стрелки, удерживая нажатой левую кнопку мыши, ведите отображение новой границы де необходимого значения.


Цвет фона устанавливается с помощью свойства BackColor. При проектировании цвет выбирают в диалоговом окне настройки цвета, а во время работы приложения цвета задаются либо с использованием цветовой схемы RGB, либо константами библиотеки VBRUN. С помощью свойства ForeColor можно определить или установить цвет, используемый для отображения текста и графики в элементе управления, а с помощью свойства FillColor – установить цвет заполнения так называемых shapes (рисованных объектов).
Вид шрифта в элементах управления выбирается путём установки значений следующих свойств:

·         Font.Name – имя шрифта;
·         Font.Size – размер шрифта;
·         Font.Italic – курсив;
·         Font.Underline – подчёркивание;
·         Font.Bold – полужирный шрифт;
·         Font.StrikeThrough – перечёркивание;
·         Font.Weight – толщина символа

Если значение свойства Enabled равно False, элемент управления будет недоступен и пользователь не сможет его использовать. Обычно при этом элемент подсвечивается серым цветом.
Если значение свойства Visible равно False, элемент управления будет невиден и обратиться к нему нельзя.
Свойство Name (имя) является идентификатором элемента управления. Ошибки при его задании или изменении часто приводят к серьёзным последствиям.
Свойство Appearance отвечает за отображение элемента управления (без визуальных эффектов или в трёхмерном виде).
Если некоторый текст установить как значение свойства ToolTipText, то при установке указателя мыши на элемент управления в форме этот текст отобразится в подсказке.
Благодаря свойству Parent возможен доступ к методам или свойствам родительского объекта. Например, код
StrCaption$=Command1.Parent.Caption
означает, что строка заголовка формы, которой принадлежит кнопка Command1, сохраняется в переменной StrCaption.


Свойство Container позволяет не только считывать, но и изменять контейнер элемента управления. Например, код
Set Command1.Container=Picture1
означает, что кнопка Command1 переместиться в элемент Picture1.
Свойство Tag не используется для управления элементом. Оно предназначено для хранения любых дополнительных данных, необходимых разработчику.
Воспользовавшись свойством BorderStyle, можно установить способ отображения текста. Также с помощью этого свойства можно изменять вид рамки окна (Form):
·       vbBSNone или 0–окно без рамки, размер окна изменяться не может, нет строки заголовка, минимизация и максимизация окна невозможны;
·       vbFixedSingle или 1–фиксированная рамка, есть заголовок, кнопки минимизации и максимизации, размер окна изменяться не может;
·       vbSizeable или 2–возможны все изменения окна (значение по умолчанию);
·       vbFixedDialog или 3–окно окаймляется толстой рамкой, изменения размера невозможны, минимизация и максимизация возможна только из системного меню (нет кнопок);
·       vbFixedToolWindow или 4–то же самое, что и vbFixedSingle, но строка заголовка более узкая;
·       vbSizeableToolWindow или 4–то же самое, что и vbSizeable, но строка заголовка более узкая.
Свойство ControlBox определяет, отражается ли системное всплывающее меню, с помощью которого пользователь может выйти из программы ([Alt-F4]), максимизировать или минимизировать окно (Form).
Если свойству MaxBatton (MinBatton) присвоить значение False, то кнопка максимизации
 (минимизации
) будет отсутствовать, а системного меню удалится строка Maximize (Minimize).
Если у кнопки (CommandButton) свойство Default равно True, то нажатием клавиши [Enter] автоматически генерируется событие Click этой кнопки независимо от того, какой элемент имеет фокус. Свойство Cancel используется подобно Default и обеспечивает перехват клавиши [Esc].


Элементы управления, которые разрешают ввод символов, имеют свойство Text, а элементы, предназначенные только для отображения текста, - свойство Caption. Свойство Caption содержит текст, отображаемый в надписи. Если текст длиннее, чем поле надписи, то оставшаяся часть текста просто усекается. Этого можно избежать, если установить значение True свойства AutoSize, что приводит размер надписи в соответствии с длиной текста. Если установить свойство WordWrap, то слова, не помещающиеся в строке, автоматически будут переноситься в следующую строку. Если свойство Text относится к текстовому полю (TextBox), то оно содержит отображаемый в поле текст, а если к списку (ListBox), то – текст выбранного элемента списка или пустую строку, если ни один элемент списка не выбран. Установка свойства MultiLine даёт возможность вводить в поле несколько строк.
Если вводимый текст больше текстового поля, то он не отображается полностью. Эта проблема решается установкой свойства ScrollBars, с помощью которого можно установить горизонтальную, вертикальную или сразу обе полосы прокрутки.
Три свойства текстового окна (TextBox):
·       свойство SelStart определяет начальную позицию выделенного текста в символах;
·       свойство SelLength содержит количество выделенных символов;
·       с помощью свойства SelText
можно прочитать или изменить выделенный текст.
С помощью свойства Value можно определить состояние переключателя (OptionBatton) или текущее положение бегунка полосы прокрутки (ScrollBar).
Свойство списка List(номер элемента списка) позволяет определить текст элемента списка по его индексу (первый элемент списка имеет индекс 0). Значение свойства ListIndex определяет индекс выбранного элемента списка. Текущее количество элементов в списке сохраняется в свойстве ListCount. Число столбцов списка определяется с помощью свойства Columns. Если установить свойство Sorted, то все элементы списка будут сортироваться по алфавиту, даже если они были добавлены с указанием индекса. Индекс последнего добавленного элемента содержит свойство NewIndex. С помощью свойства ItemData() каждому элементу списка можно поставить в соответствие число типа Long. Значение свойства Selected(индекс) показывает выделен ли данный элемент списка или нет.


Значения свойства MultiSelect, которое определяет выбор элементов в списке щелчком мыши или нажатием клавиши пробела:
·       0 – множественный выбор невозможен, можно выбрать только один элемент;
·       1 – простой множественный выбор;
·       2 – расширенный множественный выбор (с использованием клавиш [Shift] и [Ctrl]).
Свойство Style определяет внешний вид и функционирование поля со списком (ComboBox):
·       vbComboDropDown (0) – ComboBox представляет собой текстовое поле для редактирования и открывающийся список (значение по умолчанию);
·       vbComboSimple (1) – ComboBox представляет собой текстовое поле и постоянно открытый список;
·       vbComboDropDownList (2) – отличается от vbComboDropDown только тем, что пользователь не может вводить текст в текстовое поле.
Щелчок на одной из двух кнопок со стрелками на полосе прокрутки (ScrollBar) изменяет значение свойства Value на величину, определяемую свойством SmallChange. Если пользователь щёлкнет в области между бегунком и какой-либо из кнопок, то значение свойства Value, определяющее положение бегунка, изменится на величину, определяемую свойством LargeChange.
Для установки интервала времени вызова события Timer служит свойство Interval (максимум 64757 миллисекунд).
Свойство Path возвращает полный путь к выбранному каталогу, а FileName содержит имя выбранного файла. Свойство Pattern позволяет определить тип файлов отображаемых в списке.
Положение элемента управления в форме задаётся свойством Align. Свойство AutoSize определяет будут ли автоматически изменяться размеры элемента управления для отображения рисунков различного размера (Image, PictureBox). В свойстве Picture определяется рисунок, отображаемый в Image.

2.4 События
Событие Click вызывается, как только пользователь выполнит щелчок кнопкой мыши на элементе управления. Событие DblClick
вызывается двойным щелчком кнопкой мыши на элементе управления. Событие MouseDown
вызывается при нажатии кнопки мыши, а MouseUp – при отпускании. Событие MouseMove вызывается, когда пользователь передвигает курсор мыши.

с количеством знаков после запятой



Тип
Содержимое
Область значений
Знак
Boolean
Логическое значение
True или False
Byte
Однобайтное целое число
от 0 до 255
Integer
Целое число
от –32768 до +32767
%
Long
Длинное целое число
от –2147483648 до +2147483647
&
Single
Число с плавающей запятой
от –3,402823*1038
до -1,401298* 10-45 и от +1,401298* 10-45 до +3,402823*1038
!
Double
Число с плавающей запятой двойной точности
от –1,79769313486232*10308
до -4,94065645841247* 10-324 и от +4,94065645841247* 10-324
до +1,79769313486232*10308
#
Currency
Денежная величина
от –922337203685477,5808 до +922337203685477,5807
@
Decimal
Десятичное число
Числа с количеством знаков после запятой от 0 до 28
Date
Дата/время
String;
string длина
Строка переменной и постоянной длины
длина строки до 65500 (16-разрядный код) или 2*1032 (32-разрядный код)
$
Object
Объект
Любая ссылка на объект
Variant
Устанавливает тип данных в зависимости от содержимого
Null, Error, Double, String, Object

При объявлении многомерного массива границы каждой размерности разделяются запятыми. Например, можно использовать трёхмерный массив, где первое измерение относится к школе, второе – к классу, а третье – к номеру ученика: Dim aStudent (5, 4 To 10, 30)
aStudent(3, 5, 17)="Иванов"
Размер и размерность динамического массива можно изменять во время выполнения программы. Сначала массив определяют в секции (General)(Declarations) контейнера (формы, модуля, класса) без указания размера, например Dim aArray () As Variant
Затем в каждой процедуре с помощью оператора ReDim устанавливают фактический размер массива, например ReDim aArray (50, 10)
Тип данных можно не указывать, если он уже определён с помощью Dim. Для многомерных массивов можно изменять только последнее измерение. Использование зарезервированного слова Preserve позволяет сохранить содержимое массива при изменении его размера или размерности, например
ReDim Preserve aArray (50, 15)
Константы объявляются с помощью слова Const, где сразу ей присваивается значение, например Const Pi=3.141
Глобальная константа объявляется с помощью Public, например

Виды операционных систем


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

· управления аппаратными средствами компьютера;

·       создания рабочей среды и интерфейса пользователя;

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

·       организации ввода-вывода, хранения информации и

управления файлами и данными.

Сетевые операционные системы

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

Многозадачность (многопрограммность) – это одновременное выполнение нескольких задач, т.е. нескольких видов работ или процессов.

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