Visual Basic 6. Руководство разработчика

       

Динамический список


Чтобы создать список, как в SBXDHTML.HTM, необходимо начать с простого документа HTML. Например, HTML для списка с отобранными названиями Sybex (документ SBXHTML.HTM) приведен ниже.

Программа 19.3. Простой список HTML

<HTML>

<head>

<TITLE>Site Map</TITLE>

</HEAD>

<BODY>

<FONT FACE= "Verdana" SIZE=2>

<CENTER>

<H1>

Popular Titles from SYBEX

</H1>

</CENTER>



<FONT SIZE=3>

<B>DEVELOPERS HANDBOOKS</B><BR>

<FONT SIZE=2>

<UL>

<LI>The NetWare 3.12 Administrator's Handbook (2nd Ed)

<LI>Access and SQL Server Developer's Handbook

<LI>Microsoft Access 2 Developer's Handbook

</UL>

</FONT>

<P>

<FONT SIZE=3>

<B>FAST TRACK</B><BR>

<UL>

<LI>Fast Track to Visual Basic 4

<LI>The ABCs of JavaScript

</UL>

</FONT>

<P>

<FONT SIZE=3>

<B>MASTERING</B><BR>

<UL>

<LI>Mastering Web Design

<LI> Mastering the Internet (2nd Ed)

<LI> Mastering Windows NT Server 4

<LI> Mastering Java

<LI> Mastering Windows 95

</UL>

</FONT>

<P>

<FONT SIZE=3>

<B>NETWORK PRESS</B><BR>

<UL>

<LI>The Encyclopedia of Networking (2nd Ed)

<LI> Introduction to Local Area Networks

<LI> Networking The Small Office

</UL>

</FONT>

</BODY>

</HTML>

Этот пример не содержит весь текст, который можно увидеть в окне броузера, а отображает только структуру списка. Также отсутствуют теги <А>, которые преобразуют каждый заголовок в гиперссылку, указывающую соответствующую книгу на Web-сервере Sybex. Чтобы просмотреть полный список, откройте документ SBXHTML.HTM в текстовом редакторе. Здесь тегом, который соответствует элементу Mastering Web Design (первый заголовок в серии Mastering) является:

<LI TYPE = DISC><A HREF="http://www.sybex.com/cgi-bin/


categor.pl?1911back.html">Mastering Web Design</A>

Как видно из примера, каждая серия состоит из списка элементов. Чтобы отобразить данный список средствами HTML, нужно заключить его в пару тегов <UL> (UL — это аббревиатура для Unsorted List — неупорядоченный список) и перед каждым новым элементом списка вставить тег <LI>. Атрибут TYPE==DISC вызывает появление маленького кружка перед каждым элементом (его можно опустить, если такой вид списка вас не устраивает).

Динамическая версия этого списка (документ SBXDHTML.HTM на компакт-диске) более сложна, но в нем используется та же структура. Каждому активному элементу списка нужно присвоить имя, чтобы на него можно было сослаться в коде. Приведем описание серии Mastering.

<DIV ID= 'Head3'>

<FONT SIZE=3>

<B>MASTERING</B>

<BR>

<FONT SIZE=2>

The books to choose for comprehensive, soup-to-nuts coverage of

virtually any popular program. Mastering titles demonstrate basic

to advanced skills through real-world examples. Included are

some of the best-selling computer books on the market.

</DIV>

Теги <DIV> отмечают начало и конец элемента. Заголовок "Mastering" и следующее определение формируют элемент, поскольку они заключены в пару тегов <DIV>. Атрибут ID тега <DIV> является именем элемента.

Вслед за заголовком "Mastering" (который будет преобразован в активный элемент) следует список названий книг из серии Mastering. Этот список является элементом другого типа. Необходимо обеспечить возможность разворачивания и сжатия этого списка. Определение списка Mastering — это HTML-код, описанный ранее, но заключенный в пару тегов <DIV>. Код списка "Mastering" приведен ниже.

<DIV ID= " " STYLE= "display: none">

<FONT SIZE=2>

<UL>

<LI>Mastering Web Design

<LI>Mastering the Internet (2nd Ed)

<LI>Mastering Windows NT 4

<LI>Mastering Windows 95



</UL>

</FONT>

</DIV>

В этом примере пропущено определение гиперссылок с целью облегчения читабельности. Обратите внимание: этот элемент называется ТОСЗ            и имеет свой стиль. Атрибут

STYLE= "display:none"

предписывает Internet Explorer не отображать элемент. Весь документ будет загружен на компьютер клиента, но не будет отображен из-за установки атрибута STYLE.

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

Mastering. Раздел Mastering называется Head3. Таким образом, необходимо создать обработчик события, который реагирует на событие onClick объекта Head3.

Sub Head3_onClick()

If ТОСЗ.style.display = " " Then

ТОСЗ.style.display = "none"

Else

ТОСЗ.style.display = " "

End If

End Sub

Этот обработчик события вызывается в случаях, когда пользователь щелкает на активном элементе Mastering. Он анализирует значение атрибута DISPLAY элемента ТОСЗ. Если элемент ТОСЗ видим (значением его атрибута DISPLAY является пустая строка), то код скрывает его, устанавливая значение DISPLAY в "none". Иначе, он отобразит элемент, установив значение его атрибута DISPLAY в пустую строку.

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

Двумя подпрограммами, которые определяют, когда указатель перемещается в область Head3 и покидает ее, являются функции

Head3_onMouseOver() и Head3_onMouseOut(). Используем эти функции для изменения цвета элемента Head3. Ниже приведен код обработчиков событий.

Sub Head3_noMouseOver()

Head3.style.color = "#FF3300"

End Sub

Sub Head3_noMouseOut()

Head3.style.color = "#000000"



End Sub

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

Чтобы программно управлять элементом, создайте обработчик события для каждого внешнего воздействия, на которое документ должен реагировать. Название обработчика события составляется из имени элемента, который необходимо запрограммировать (значение атрибута ID тега <DIV>) и события, которое он будет обрабатывать.

На этом заканчивается краткое введение в Web и VBScript. Надеемся, теперь вы знаете, как работают HTML и VBScript, и понимаете их роль в Web-разработках. Visual Basic поддерживает новый тип проектов - D HTML-проекты, но без хоро­шего понимания тега <DIV> и использования VBScript для программирования элементов на странице невозможно эффективно использовать визуальные инстру­менты для разработки DHTML-документов.

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

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

• Объект FileSystemObject

• Доступ к папкам и файлам

• Элемент управления Script

• Написание сценариев для Windows

• Объект Shell

В предыдущей главе VBScript использовался для описания Web-страниц, в том числе сценариев, использующих вычислительную мощность компьютера клиента. Сценарии - это простые программы, которые загружаются в текстовом формате и выполняются на компьютере клиента. Сам по себе, VBScript является ядром языка программирования. Самостоятельно он выполняет очень мало. Подлинные возможности сценариев заключаются в том, что VBScript обеспечивает доступ к объектам, предоставляемым броузером. Если проигнорировать объекты, которыми можно управлять с помощью VBScript (такими как <DIV>-тэги или встроенные элементы управления ActiveX), то что останется? Язык, который может создавать переменные, задавать их значения, выполнять основные операции над переменными, вычислять логические выражения и повторять некоторые циклические структуры. Если имеется механизм выполнения этих операций, то можно построить специ­альный язык программирования.



Чтобы создать такой язык и встроить его в приложение, необходим механизм, который интерпретирует и выполняет код VBScript. Добавьте немного объектов со свойствами и методами, и получится новый язык. DHTML и Internet Explorer предоставляют объекты, которые могут использоваться VBScript. Далее в главе показано, как встраивать VBScript в приложения и позволять пользователям программировать приложение.

А как же Visual Basic for Applications? VBA - это мощный язык для программи­рования офисных (и других) приложений, но не язык сценариев. Во-первых, встраивание VBA в приложение не является задачей для среднего VB-программиста. Во-вторых, кроме чисто технических сложностей, VBA — дорогой продукт. Только крупные компании могут позволить себе иметь лицензию на VBA, поэтому отно­сительно небольшое число не Microsoft-приложений используют VBA (например, AutoCAD фирмы Autodesk). С другой стороны, внедрение VBScript в приложение не вызывает особых затруднений, и VBScript свободно распространяется.

Эта технология используется при работе с другими программными продуктами, включая Windows. Например, можно автоматизировать операции Windows 98 с помощью сценариев, которые являются эквивалентами пакетных файлов DOS. Windows 98 содержит Windows Scripting Host (WSH) - систему, которая интерпретирует и выполняет код VBScript, а также предоставляет несколько объектов, необходимых для написания сценария в операционной системе. Одним из объектов WSH является объект Environment (среда), который предоставляет доступ к переменным среды операционной системы. Другой объект WSH - Network (сеть) - открывает доступ к сетевым ресурсам. Эти объекты описаны далее в этой главе. Пока же запомните: язык написания сценариев для Windows 98 - VBScript, а полученные знания применимы и в другой области написания сценариев.

В следующем параграфе рассмотрен очень полезный объект, введенный в VBScript - FileSystemObject. Он обеспечивает доступ к файловой системе хост-компьютера и в Visual Basic отсутствует. Позже мы исследуем элемент управления Script, который позволяет добавлять возможности сценария к VB-приложениям. Да, оказывается можно добавить сценарий к своему собственному приложению с использованием VBScript, и сделать его более гибким. В последнем параграфе этой главы мы узнаем, как использовать VBScript для написания сценариев для Windows.


Содержание раздела