Объекты и их семейства. Иерархия объектов
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

VBA относится к языкам объектно-ориентированного про­граммирования (ООП).

Объектная библиотека VBA содержит более 100 различных объектов, находящихся на разных уровнях иерархии. Иерархия определяет связь между объектами и показывает пути доступа к ним. Указать объект можно используя полную или неявную ссылки.

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

Пример. Полная ссылка на ячейку А1 рабочего листа Лист1 рабочей кни­ги с именем Кафедра имеет вид:

Application.Workbooks("Кафедра").Works­heets("Лист1").Range("A1")

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

В рассмотренном случае, если ссылка на ячейку А1 дана в программе, выполняемой в среде Excel, то ссылка на объект Application может быть опущена, т. е. достаточно привести от­носительную ссылку:

Workbooks("Кафедра").Worksheets("Лист1").Range("A1")

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

Worksheets("Лист1").Range("A1")

Если и рабочий лист Лист1 активен, то в относительной. ссылке вполне достаточно ограничиться упоминанием только диапазона А1:

Range("A1")

Методы

Синтаксис применения метода:

Объект.Метод

Пример. При помощи метода Quit (Закрыть) закрывается приложение (объект Application ):

Application.Quit

Свойства

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

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

Синтаксис установки значения свойства:

Объект.Свойство = ЗначениеСвойства

В следующем примере изменяется заголовок окна Excel по­средством задания свойства Caption объекту Application :

Application.Caption = "База данных"

Свойство можно изменять сразу у всех объектов семейства. Например, с помощью установки свойству Visible (Видимость) значения False (Ложь) все рабочие листы активной книги (се­мейство объектов Worksheets) скрываются:

Worksheets.Visible = False

События

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

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

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

Структура редактора VBA

Редактор VBA предназначен для создания и редактирования макросов.

Редактор VBA активизируется командой Сервис – Макрос - Ре­дактор Visual Basic или нажатием кнопки Редактор Visual Basic панели инструментов Visual Basic . Возвратиться из редактора VBA в документ можно нажатием кнопки Вид Microsoft Word ( Excel ) или нажатием соответствующей кнопки на панели задач.

Интерфейс VBA

Интерфейс VBA состоит из следующих основных компонентов:

· окно проекта,

· окно свойств,

· окно редактирования кода,

· окно форм,

· меню

· панели инструментов.

Окно проекта

Окно проекта в редакторе VBA активизируется выбором ко­манды Вид/Окно проекта или нажатием кнопки Окно проекта.

В окне проекта представлена иерархическая структура файлов форм и модулей текущего проекта.

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

По своему назначению модули делятся на два типа:

· модули объ­ектов. К ним относятся модули, связанные с рабочей книгой, рабочими листами, формами и модули класса.

· стандартные модули. К ним относятся модули, содержащие макросы. Такие модули добавляются в проект командой Вставка/Модуль

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

Удаление файла из окна проекта производится выбором знач­ка файла с последующим выполнением команды Файл/Уда­лить.

Окно редактирования кода

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

В окне редактирования дос­тупны два режима представления кода: просмотр отдельной процедуры и всего модуля.

Переключение режимов работы окна редактирования кода осуществляется выбором одной из двух кнопок в нижнем левом углу окна редактирования кода либо ус­тановкой либо снятием флажка Просмотр всего модуля (Сервис – Параметры - вкладка Редактор - флажок Просмотр всего модуля).

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

Интеллектуальные возможности редактора кода

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

· Способность автоматически завершать написание операторов, свойств и параметров

При написании кода редак­тор сам предлагает пользователю список компонентов, логиче­ски завершающих вводимую пользователем инструкцию. Автоматическое отображение списка компонентов происхо­дит только при установленном флажке Список компонентов (Сервис – Параметры – вкладка Редактор – флажок Список параметров). Или нажатием комбинации клавиш Ctrl+J.

Пример, при наборе кода

Range("A1").

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

· Способность автоматического отображения на экране сведений о проце­дурах, функциях, свойствах и методах после набора их имени. Автоматическое отображение на экране сведений о процеду­рах, функциях, свойствах и методах после ввода их имени про­исходит только при установленном флажке Краткие сведения (Сервис –Параметры - вкладка Редактор - флажок Краткие сведения) или нажатием комбинации клавиш Ctrl+I.

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

· Контекстная справка. Если курсор расположить на ключевом слове языка VBA, имени процедуры, функции, свойства или метода и нажать клавишу F1, то на экране появится окно со справочной информацией об этой функции.

 

Окно редактирования форм UserForm

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

Форма в проект добавляется с помощью команды Вставка/Форма или нажатием кнопки Вставить UserForm . В результате на экран вы­водится незаполненная форма с Панелью элементов.

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

 

Для размещения нового управ­ляющего элемента в форме необходимо:

1. Выбрать на Панели элементнов необходимый управляющий элемент

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

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

4. Отпустить кнопку мыши. Элемент управления на нужном месте создан.

Размеры формы и расположенных на ней элементов управле­ния можно изменять.

Можно копировать, вырезать и вставлять эле­менты управления, расположенные на поверхности формы.

 

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

Окно свойств

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

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

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

• выбором значения из раскры­вающегося списка .

Окно просмотра объектов Object Browser

Окно Просмотр объектов ( Object Browser ) вызывается командой Вид - Просмотр объектов или нажатием кнопки Просмотр объектов. В этом окне приведен список всех объектов, которые имеются в системе и которые можно использовать при создании проекта.

Окно Просмотр объектов состоит из трех основных частей:

1.Раскрывающегося списка Проект - Библиотека в левом верх­нем углу окна. В этом раскрывающемся списке можно вы­брать различные проекты и библиотеки объектов. Выбор в списке строки <Все библиотеки> отображает список объектов всех биб­лиотек.

2. Списка Классы. После выбора из раскрывающегося списка Проект - Библиотека просматриваемой библиотеки,  все классы объектов выбранной библиотеки выво­дятся в списке Классы.

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

Общие сведения об организации программ в VBA.

Программа VBA состоит из одного или не­скольких модулей.

Модуль - это лист с текстом программы, вставленный в документ.

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

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

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

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

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

Переменные и константы

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

Пробелы не­допустимы, поэтому они заменяются символом подчеркивания. Также внутри идентификаторов недопустимы спецсимволы: @, #, $, &, %, !.

Для упрощения чтения и понимания значе­ния имен переменных на практике рекомендуется при написа­нии сложных имен использовать строчные и про­писные буквы, а также символ подчеркивания. Например, вме­сто myage (мой возраст) лучше написать MyAge или My _ Age .

Все переменные в VBA имеют тип.

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

Базовые типы переменных VBA приведены в таблице.

 

Тип переменной Занимаемый размер памяти, байт Диапазон
Boolean (логический) 2 True (истина) или False (ложь)
Integer (целое) 2 От -32 768 до 32 768
Long (длинное целое) 4 От -2 147 483 648 до 2 147 483 647
Single (число с плавающей точкой) 4 По абс. величине от 1,401298Е-45 до 3,402823Е38
Date (дата) 8 От 1 января 100 г. до 3 1 декабря 9999 г.
Array (массив)   Зависит от размера массива и типа элементов
Double (число с плавающей точкой двойной точности) 8 По абсолютной величине от 4,94065645841247Е-324 до 1,797693 13486232Е308
Object (объект) 4 Любой определенный объект
String (строка переменной длины) 10 От 0 до 2х109+ длина строки
Currency (денежный) 8 От -922 337 203 685 477,5808 до 922 337 203 685 477,5807
Variant (вариант)   Зависит от содержимого переменной

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

Описание переменной.

Переменную в VBA можно описать с помощью следующей конструкции:

Dim ИМЯ_ПЕРЕМЕННОЙ As ТИП_ПЕРЕМЕННОЙ

Например, возможны следующие описания переменных:

Dim A As Integer

Dim В, С, D As Integer, E As Single

Описанные таким образом переменные имеют следующие типы: переменные А и D являются переменными целого типа ( Integer ), переменная Е является действительной переменной одинарной точности ( Single ), переменные В и С описаны неявно и имеют тип Variant .

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

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

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

• IsNumeric (выражение) - определяет, является ли результат вычисления выражения числом;

• IsArray (выражение) - определяет, является ли результат вы­числения выражения массивом;

IsDate (выражение) - определяет, является ли результат вы­числения выражения датой;

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

По умолчанию строковая или текстовая переменная ( String ) является массивом переменной длины, который содержит сим­волы. Однако текстовая переменная может быть определена и фиксированной длины. В следующем примере объявляется символьный массив размером в 20 символов:

Dim Str As String*20

В этом случае, если вы присвоите переменной Str строку длиной более 20 символов, то она будет усечена.

Описание собственных типов данных.

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

Тип переменной в VBA можно описать с помощью следую­щей конструкции:

[Private/Public] Type ИМЯ_ТИПА

ИМЯ_ЭЛЕМЕНТА ( [ИНДЕКСЫ])] As ТИП

ИМЯ_ЭЛЕМЕНТА ( [ИНДЕКСЫ])] As ТИП

End Type

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

Type Worker

FirstName As String*20 ‘фамилия

LastName As String*20 ‘имя

Birthday As Date ‘дата рождения

Phone As String*7 ‘телефон

Salary As Single ‘зарплата

End Type

Dim New_Worker As Worker

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

Примеры объявления массивов:

Dim A(19) As Integer

Dim В(5, 5) As Single

Первая строка объявляет одномерный массив (вектор), состоящий из 20 целых чисел, причем по умолчанию первый элемент массива будет А(0), а последний - А(19).

Вторая строка объявляет двумерный массив 6x6 (матрицу), состоящий из действительных чисел. При этом говорят, что 0 - базовый индекс. Можно изменить базовый индекс, написав в начале листа модуля оператор Option Base 1. После этого индексы массивов А и В будут начинаться с единицы. Другим способом изменения базового индекса является использование ключевого слова То при объявлении массива, например

Dim B(1 То 6, 1 То 6) As Single

Dim A(1 To 20) As Integer

Массив в программе определяется поэлементно, например

Dim My_Array(1 To 2, 1 То 2) As Single

My_Array(1, 1)=2

My_Array(1, 2)=4

My_Array(2, 1)=1

My_Array(1, 2)=6

Удобным способом определения одномерных массивов является функция Array , преобразующая список элементов, разделенных запятыми, в вектор из этих значений и присваивающая ему тип Variant , например

Dim A1 As Variant

A1 = Array(15,25,35)

B1 = A1(2)

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

Dim R_dinam() As  Single

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

ReDim R_dinam(n, n)

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

Оператор присваивания обозначается знаком равенства =

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

Например, в результате действия следующей пары операторов:

х=2

х=х+2

переменной х будет присвоено значение 4.

Описание констант

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

Const ИМЯ_ПОСТОЯННОЙ = ВЫРАЖЕНИЕ

Const ИМЯ_ПОСТОЯННОЙ As ТИП_ПОСТОЯННОЙ = ВЫРАЖЕНИЕ

Примеры возможного определения констант.

Const FileName = "Main_Book.xls"

Const PI As Double = 3.14159

Const MyAge As Single =21.5

Создание функции пользователя в Excel

Общий вид функции пользователя:

Public function ИМЯ_ФУНКЦИИ(СПИСОК_ПАРАМЕТРОВ)

ТЕЛО_ФУНКЦИИ

End Function

ТЕЛО_ФУНКЦИИ состоит из описательной части и блока операторов, выполняющихся один за другим. Если необходимо прекратить выполнение функции в некотором конкретном мес­те, это можно сделать с помощью оператора Exit Function .

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

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

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

Ввод и вывод информации в окне сообщений

Вывод сообщений осуществляется функцией MsgBox, которая имеет следующий вид

MsgBox (“сообщение”, кнопки, заголовок, файл-справки, описание) as VbMsgBoxResult

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

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

 

Кнопки Аргумент
Ok VbOkOnly
Ok Отмена VbOkCancel
Да Нет VbYesNo
Да, Нет, Отмена VbYesNoCancel
Прекратить, Повторить, Игнорировать VbAbortRetryIgnore
Повторить, Отмена VbRetryCancel
Информационный знак VbInfirmation
Знак вопроса VbQuestion
Знак «Критическое сообщение» VbCritical
Знак восклицания VbExclamation

Заголовок – задает заголовок окна.

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

Например.

y = MsgBox("все в порядке", vbOKOnly)

Таблица значений, возвращаемых функцией MsgBox

Описание Константа
Ok VbOk
Отмена VbCancel
Прервать VbAbort
Повторить VbRetry
Пропустить Vblgnore
Да VbYes
Нет VbNo

Ввод данных с помощью окна ввода осуществляется функцией InputBox, которая имеет вид:

InputBox (“сообщение”, заголовок, значение_по_умолчанию, X, Y, файл-справки, описание) as String

Сообщение – текст, который выводится в окне

Значение_по_умолчанию – символ, который выводится в поле ввода, например «пробел».

X, Y – координаты верхнего левого угла окна.

Пример.

n = InputBox("введите аргумент", "запрос", " ")

y = new_f(n)

MsgBox (y)



Литература

 

Информатика: Учеб. пособие для студ. пед. вузов/ А.В.Могилёв, Н. И. Пак, Е. К. Хеннер; Под ред. Е. К. Хеннера. — М.: 1999. — 816 с.

Информатика: Учебник, задачник-практикум (два тома), методические рекомендации для учителя/ Под ред. И. Г. Семакина, Е. К. Хеннера— М.: Лаборатория Базовых Знаний, 1999 г.

Попов В. Б. Основы компьютерных технологий — М.: Финансы и статистика, 2002. — 704 с.

Основы современных компьютерных технологий, под ред. А. Д. Хомоненко, СПб., КОРОНА принт, 1998.

Бозенко А. Е. IBM PC: устройство, ремонт, модернизация. — 2-е изд., перераб. и доп. — М.: ТОО фирма «КомпьютерПресс», 1996. — 344 с.

Олифер В. Г., Олифер Н. А. Сетевые операционные системы — СПб.: Питер, 2001. — 544с.

Гордеев А. В., Молчанов А. Ю. Системное программное обеспечение. — СПб.: Питер,

2001. —736с.

И. Ефимова О., Морозов, Угринович «Практикум по компьютерной технологии»,

Москва, ABF, 1999.

Информатика. Базовый курс/ Симонович С. В. и др.— СПб.: Изд-во "Питер", 1999.— 640с.

Фигурнов В. Э. IBM PC для пользователя. Изд. 7-е, исправл. и доп.

Ахметов К. С. Windows 95 не для всех. — 2-е изд., перераб. и доп. — М.: КомпьютерПресс, 1997. — 288 с.

 Джордейн Р. Справочник программиста персональных компьютеров типа IBM PC, XT и AT/ Пер с англ.— М.: Финансы и статистика, 1991.— 544с.

Брябрин В. М. Программное обеспечение персональных ЭВМ. — М.: Наука, 1989г.

Информатика в понятиях и терминах: Кн. для учащихся ст. классов сред, шк./ Г. А. Бордовский, В. А. Извозчиков, Ю. В. Исаев, В. В. Морозов; Под ред. В. А. Извозчикова. — М.: Просвещение, 1991. — 208 с.

Microsoft MS-DOS. User's Guide and Reference.

Франкен Г., Молявко С.М. MS-DOS 6.2 для пользователя: – Киев, BHV, 1994. – 448 с.

Андреев А.Г. и др. Microsoft Windows 2000 Server. Русская версия – СПб.: БХВ-Петербург, 2003. – 960 с.

Очков В. Ф. Mathcad 8 Pro для студентов и инженеров. — М.: КомпьютерПресс, 1999. —523с.

Плис А. И., Сливина Л. A. Mathcad 2000. математический практикум для экономистов и инженеров: Учеб. Пособие. — М.: Финансы и статистика, 2000. — 656 с.

Дьяконов В.П. Компьютерная математика. Теория и практика – М.:Нолидж, 1999 – 1296 с.

Рыжиков Ю.И. Решение научно-технических задач на персональном компьютере. – СПб.: КОРОНА принт, 2000. – 272 с.

Биллинг В.Г. Средства разработки VBA-программиста. Офисное программирование. Том 1, 2 – М. «Русская Редакция», 2001. – 480 с.

Газета «Информатика», приложение к газете «Первое сентября».

Журнал CHIP special, 2003-2005 гг.

Журнал UPGRADE special, 2004-2005 г.

 

 


* В стандартной установке отсутствует.

* данный компонент отсутствовал в Windows 9X.

* данный компонент отсутствовал в Windows 9X.

 


Дата: 2019-05-28, просмотров: 238.