Программирование
Шрифт:
Двуязычие броузера Internet Explorer делает осмысленным или необходимым применение атрибута LANGUAGE тега <SCRIPT> для указания языка сценария. При этом, поддержка двух языков вызвала введение дополнительного необязательного аргумента в тех функциях, одним из аргументов которых служит строка кода. Например, функция setTimeout , которая имеет в Netscape Navigator два аргумента, теперь может использовать третий аргумент, который сообщает данной функции, как интерпретировать строку кода в одном из аргументов – как программу на JavaScript или на VBScript.
Необходимо помнить, что хотя вариант языка JavaScript, применяемый Internet Explorer, и называется «JScript» во всех официальных документах Microsoft, на синтаксис языка это никак не повлияло – во всех
В целом JScript является довольно сильным облегченным вариантом JavaScript. Особенно если сравнивать его с тем JavaScript, который поддерживает Netscape Navigator 3.0. Многих методов, событий, объектов нет вообще, некоторые копировались из Netscape Navigator в большой спешке, и даже в синтаксисе имеются некоторые значительные упрощения – в частности, числовые значения больше не объекты. Очевидно, много сценариев для Netscape Navigator вызовут переделки, прежде чем их сможет осуществить Internet Explorer. Но в настоящий момент Micro soft даже не подготовила официальной документации на свой вариант JavaScript; все, что можно найти на сервере Microsoft, – это документ, называемый «Microsoft Internet Explorer Scripting Object Mo-del», содержащий перечисление поддерживаемых JScript объектов и их свойств и методов.
Рассмотрим, что такое «ActiveX Documents». «Документы ActiveX» дают Интернету то, к чему для рядового пользователя Windows и сводится технология OLE. К примеру, когда в окне Microsoft Word возникает обычная таблица Excel, с которой можно делать все то же самое, что и в самом Excel. Так же HTML-документ способен теперь включать в себя документы любого другого формата, для которых существуют программы просмотра, которые удовлетворяют стандартам OLE.
Для того чтобы человек мог, не покидая своего броузера, познакомиться с содержимым документа в определенном формате X, должны выполняться два условия. Первое – для данного формата должна иметься программа просмотра, которая способна играть роль OLE-сервера. Второе – такая программа должна присутствовать на компьютере пользователя. Ясно, что оба эти условия значительно ограничивают практическое применение этой идеи. Даже несмотря на то, что для любых приложений, которые входят в Microsoft Office, существуют бесплатно распространяемые программы просмотра (Word Viewer, Excel Viewer и т. п.), рассчитывать на их наличие на каждом компьютере не способна даже корпорация Microsoft, не говоря уже о других, не известных фирмах, форматах и программах. Ясно, что о переносе на другую операционную систему здесь не может быть и речи.
54. Netscape Navigator
По мнению пользователей, данный модуль работает очень прилично и иногда даже превосходит в скорости работы органов управления ActiveX сам Internet Explorer. Но надежность его вызывает нарекания. Если очень долго и интенсивно работать со страницами, которые насыщены компонентами ActiveX, то в итоге можно встретить ошибку, которая приводит к зависанию Netscape.
Но с этим вполне можно было бы мириться, если бы не некоторая техническая трудность. Netscape Navigator не различает тег <OBJECT>, и потому, даже если подключен модуль ScriptActive, это не вызывает органы управления, вводимые этим тегом. Вызов подключаемых модулей Netscape осуществляется с помощью тега <EMBED>. Это означает, что авторам, которые стремятся, чтобы органы управления на их страницах работали в обоих броузерах, следует продублировать информацию тега <OBJECT> в теге <EMBED>. А для того, чтобы заставить Internet Explorer не обращать внимания на этот не нужный ему <EMBED> (как известно, Internet Explorer поддерживает этот тег и даже может работать с подключаемыми модулями Netscape), этот тег располагают внутри соответствующей пары тегов <OBJECT> … </OBJECT>.
Подобный выход из положения используется в HTML довольно часто – применяя какой-нибудь новый тег, автор в целях совместимости располагает между этим тегом и парным ему закрывающим что-нибудь,
что будет видеть только старый броузер, игнорирующий новый тег. Новый броузер, который распоз54б нает этот тег, наоборот, должен игнорировать все, что расположено внутри парного тега. Так выглядит тег <OBJECT>, информация которого по-вторена во вложенном теге <EMBED>:<OBJECT
WIDTH = 320 HEIGHT = 240
CLASSID = «clsid:0D5C3F21-6DF8-11CF-AAEB-02608C9EA5BF»
CODEBASE = Ошибка! Недопустимый объект гиперссылки.
veX/
ocx/nbillbrd.ocx» DATA = «http://www.ncompasslabs.com/ActiveX/inline/
billboard.ods»
>
<PARAM NAME = «Slideshow» VALUE = «1»> <PARAM NAME = «LocalButtons» VALUE = «0»> <PARAM NAME = «Delay» VALUE = «1»>
<EMBED WIDTH = 320
HEIGHT = 240
SRC = «BillBoard.ods»
CODE = «http://www.ncompasslabs.com/ActiveX/
ocx/nbillbrd.ocx» Slideshow = 1 <! – параметры стали атрибутами —> LocalButtons = 0 Delay = 1 >
</OBJECT>
55. Понятие системы VВА
VBA представляет собой подмножество VB и включает средства образования приложений VB, его структуры данных и управляющие структуры, возможность создания пользовательских типов данных. Также как и VB, VBA является системой визуального программирования, управляемого событиями. В нем имеется возможность создания форм со стандартным набором элементов управления и написания процедур, обрабатывающих события, которые возникают при тех или иных действиях системы и конечного пользователя. Также он позволяет использовать элементы ActiveX и автоматизации. VBA представляет собой полноценную систему программирования, но не имеет полный набор возможностей, которыми обладает последняя версия VB.
Программирование в среде VBA обладает рядом особенностей. В частности, в ней нельзя создавать проект независимо от этих приложений.
Из-за того что VBA является визуальной системой, программист способен создавать видимую часть приложения, которая является основой интерфейса «программа – пользователь». Благодаря ему производится взаимодействие пользователя с программой. На принципах объектно-ориентированного подхода, который реализуется в VBA применительно к приложениям, выполняемым под управлением Windows, разрабатывается программный интерфейс.
Характерным для данных приложений является то, что на экране в любой момент присутствует множество объектов (окон, кнопок, меню, текстовых и диалоговых окон, линеек прокрутки). С учетом алгоритма программы пользователь обладает определенной свободой выбора относительно использования этих объектов. То есть он может сделать щелчок по кнопке, перенести объект, ввести данные в окно и т. п. При создании программы программист не должен ограничивать действия пользователя, он должен разрабатывать программу, правильно реагирующую на любое действие пользователя, даже неправильное.
Для любого объекта определяется ряд возможных событий. Одни из событий происходят от действий пользователя (щелчок или двойной щелчок мыши, перенос объекта, нажатие клавиши клавиатуры и т. п.). Случается, что некоторые события происходят в результате свершения других событий: окно открывается или закрывается, элемент управления становится активным или теряет активность.
Любое из событий проявляется в определенных действиях программы, а виды возможных действий можно разделить на две группы.
1. Действия первой группы, которые являются следствием свойств объекта, устанавливающихся из некоторого стандартного перечня свойств, которые задаются системой программирования VBA и самой системой Windows. К примеру, свертывание окна после щелчка по кнопке Свернуть.
2. Вторую группу действий на события может определить только программист. Для любого возможного события отклик обеспечивается созданием процедуры VBA. Теоретически возможно создать процедуру для каждого события, но практически программист заполняет кодом процедуры только для событий, представляющих в данной программе интерес.