WebSnap

Другая закладка Unit1.html – содержит текст шаблона страницы – вы можете сделать страничку более симпатичной, правда, в среде разработки Вам она может отображаться не совсем так, как должна (например, я подправил цвет фона страницы, однако в IDE фон продолжал оставаться белым). Двигаемся далее, как уже вскользь упоминалось, приложение может содержать (и в реальных проектах содержит ) несколько модулей страниц. Добавим новый модуль страницы в наше приложение. Идем в пункт меню File/New/Other и на закладке диалога, перейдя на закладку Web Snap, выбираем элемент Page Module. Нашему вниманию будет представлен диалог выбора параметров модуля. Назначение параметров мы уже рассмотрели. Нажав кнопку ОК, мы получим модуль страницы с именем PageProducerPage2. Теперь, если мы скомпилируем наше приложение, и разместим его на Web севере (для этого необходимо скопировать файлы Unit1.html, Unit2.html, Project1.exe в папку для скриптов на сервере) в окне браузера мы увидим, что вверху страницы ниже заголовка появилась панель навигации по страницам нашего приложения. Сразу возникает вопрос, а как она появилась, ведь мы ничего не делали для ее генерации? Ответ кроется в файле Unit1.html. Трудно не заметить, что помимо тегов HTML страница содержит теги <% %>, внутри которых расположены операторы скриптового языка. Данные операторы выполняются на стороне сервера, результат их работы вставляется в страницу, отсылаемую клиенту. Из скриптов можно обращаться к большинству компонентов, расположенных в модулях. Это вносит замечательную гибкость и открывает большие возможности для создания сложных динамических страниц. Текст скрипта необходимо заключать в тег <% %>. В качестве скриптовых языков могут применяться JScript и VBScript. Мы будем использовать JScript. Теперь становится ясно, что функция: <% e = new Enumerator(Pages) s = '' c = 0 for (; !e.atEnd(); e.move()) { if (e.item().Published) { if (c>0) s += ' | ' if (Page.Name != e.item().Name) s += '' + e.item().Title + '' else s += e.item().Title c++ } } if (c>1) Response.Write(s) %> в файле Unit1.html генерирует панель навигации. Текст функции достаточно понятен, некоторые комментарии необходимы лишь для последнего оператора Response.Write – данный оператор выводит строку с результатом работы скрипта в HTML файл страницы. Есть еще один способ это использование тега <%= %>. Пример можно увидеть в том же Unit1.html: <%= Application.Title %> В результате работы этого скрипта на страницу выводится ее заголовок. Использование TAdapter Адаптеры предназначены для хранения различных параметров и процедур и предоставляют возможность обращаться к ним из скрипта. На странице содержит несколько видов адаптеров. Наиболее неспециализированным из них является адаптер класса TAdapter. Параметры адаптера хранятся в так называемых полях (AdapterFields). На самом деле, поля TAdapter представляют программисту возможность задать обработчики для получения значения поля и других его параметров. TAdapter имеет свойство Data для хранения и управления своими полями. Процедуры (Actions) позволяют вызывать из скрипта выполнение каких-либо действий для управления ими TAdapter содержит свойство Actions. Рассмотрим пример создания страницы для ввода имени пользователя. Поместим компонент TAdapter в наш модуль PageModule2. Определим поле, которое будет возвращать имя пользователя. Для этого из инспектора объектов вызовем редактор свойства Data нашего адаптера Adapter1. В редакторе нажмем кнопку New Item, нам будет предложен диалог выбора типа поля. Мы выберем тип AdapterField, т.к он наиболее подходит для хранения небольших строк. В диалоге при этом появится элемент AdapterField1, соответствующий нашему полю. Выберем его. Теперь в инспекторе объектов перейдем на закладку Events и определим текст обработчик события OnGetValue. Данное событие возникает каждый раз, когда требуется узнать значение поля. Затребованное значение поля необходимо возвращать через параметр Value, передаваемый в обработчике. Код обработчика: Value:=FValue; FValue здесь переменная, в которой мы будем запоминать значение поля AdapterField1, необходимо определить эту переменную в секции public декларации TPageProducerPage2 как FValue:String; Для инициализации значения FValue в обработчике события OnCreate нашего модуля введем код: FValue:=’Неизвестный человек’; Теперь мы можем получать доступ к данному полю из скрипта. Для начала мы попробуем выводить значение поля пользователю. Для этого в код шаблона HTML страницы Unit2.html надо добавить после закрывающегося тега

следующий код:

Добрый день, уважаемый <%=Adapter1.AdapterField1.DisplayText%>. Скомпилировав проект и поместив его на Web сервер, мы на странице PageProducerPage2 увидим внизу страницы надпись «Добрый день, уважаемый Неизвестный человек». Далее создадим процедуру (action) для изменения значения имени пользователя. В инспекторе объектов вызовем редактор свойства Actions, и нажав кнопку New Item из появившегося диалога выберем тип процедуры AdapterAction. Будет создана новая процедура - AdapterAction1. В инспекторе объектов установим следующие свойства для процедуры: Свойство Значение Описание DisplayLabel OK Текст для отображения в HTML шаблоне ActionName GetNameAction1 Имя процедуры для использования в скриптах Осталось написать код обработчика события OnExecute нашей процедуры: FValue:=AdapterField1.ActionValue.Values[0]; Данная строка сохраняет значение поля AdapterField1 в переменную FValue. Чтобы дать пользователю возможность вводить свое имя в текст Unit2.html (после строки “Добрый день ……”) добавим определение формы ввода:
Ваше имя:
Скомпилируем проект, перенесем его на Web сервер – поприветствуем себя J. PagedAdapter отличается тем, что позволяет разделить большой объем информации на страницы. Размер информации, размещаемой на одной странице, задается в свойстве PageSize. Парольный доступ к странице Очень часто требуется обеспечить ограничение доступа к определенным страницам приложения. Одним из методов решения данной задачи является парольная защита. Технология позволяет реализовать доступ к страницам по паролю. Для поддержки парольного доступа в главном модуле должны присутствовать следующие компоненты: ·Компонент TWebUserList, который содержит список пользователей, их паролей и прав доступа ·Компонент TSessionsService, который содержит информацию о пользователях, использующих приложение в данный момент. ·Компонент TEndUserSessionAdapter, который обрабатывает события подключения пользователя ·Добавить эти компоненты можно либо на этапе создания модуля страницы в диалоге Web App Components clip0096

« первая‹ предыдущая123следующая ›последняя »

Отправить комментарий

Проверка
Антиспам проверка
Image CAPTCHA

Карта сайта

Базы данных Delphi.Net Графика и мультимедиа Интернет, сети,протоколы Работа с файловой системой ActiveX WinAPI Алгоритмы Kylix
Конвертация форматов Визуальные компоненты Создание отчётов Delphi IDE Разработка приложений Основы Delphi

Похожие материалы

Быстрая навигация в FAQ

Новые файлы

Rambler's Top100 Рейтинг@Mail.ru

...