Обработка событий, генерируемых элементами управления формы
Обработка событий, генерируемых элементами управления формы
В нашем сценарии мы будем обрабатывать события, связанные с нажатием на кнопки в форме и с изменением текста в полях ввода. Для этого нужно, во-первых, получить ссылку на соответствующий элемент управления в форме, зная его имя, которое задается атрибутом name в HTML-файле, например:
<input type="button" value="<<" name="btnFirst">
Для доступа к элементу управления используется объект Document, который соответствует загруженному в браузер HTML-документу. Ссылка на объект Document Хранится в свойстве Document объекта Application:
//Получаем ссылку на объект Document
doc = ie.Document;
Обработчики событий для элементов управления формы указываются тогда следующим образом:
doc.all.ControlName.EventName=FunctionName;
Здесь ControlName — имя элемента управления, EventName — имя обрабатываемого события, FunctionName — имя функции-обработчика, которая будет вызываться при наступлении события EventName. Событие, возникающее при нажатии на кнопку в форме, называется onclick, а событие, происходящее при изменении текста в поле ввода, — onchange:
//Указываем функции-обработчики нажатий на кнопки формы
doc.all.btnSave.onclick=btnSave_OnClick;
doc.all.btnCancel.onclick=btnCancel_OnClick;
doc.all.btnFirst.onclick=btnFirst_OnClick;
doc.all.btnPrevious.onclick=btnPrevious_OnClick;
doc.all.btnNew.onclick=btnNew_OnClick;
doc.all.btnDelete.onclick=btnDelete_OnClick;
doc.all.btnNext.onclick=btnNext_OnClick;
doc.all.btnFinal.onclick=btnFinal_OnClick;
//Указываем функции-обработчики изменения текста в полях ввода
doc.all.txtLastName.onchange = txtBoxOnChange;
doc.all.txtName.onchange = txtBoxOnChange;
doc.all.txtPhone.onchange = txtBoxOnChange;
doc.all.txtStreet.onchange = txtBoxOnChange;
doc.all.txtHouse.onchange = txtBoxOnChange;
doc.all.txtApp.onchange = txtBoxOnChange;
doc.all.txtNote.onchange = txtBoxOnChange;
Сами функции-обработчики нажатий на различные кнопки и изменения текста в полях ввода приведены с подробными комментариями в листинге 7.12.
Листинг 7.12. Функции-обработчики нажатия кнопок и изменения поло ввода
//Функция-обработчик нажатия на кнопку "Сохранить"
function btnSave_OnClick() {
//Сохраняем данные из формы в XML-файле
objListPersons.SaveData();
}
//Функция-обработчик нажатия на кнопку "Отменить"
function btnCancel_OnClick() {
//Заново загружаем данные из текущего элемента массива
//в форму
objListPersons.LoadDialog();
//Выводим сообщение в заголовке окна
doc.title = "Данные восстановлены";
}
//Функция-обработчик нажатия на кнопку "<<"
function btnFirst_OnClick() {
//Проверяем, были ли сделаны изменения в форме
if (objListPersons.IsChanged) { //Изменения были сделаны
//Сохраняем данные в XML-файле
objListPersons.SaveData();
//Заново загружаем данные из XML-файла в массив PersonArr
objListPersons.FileToArray();
}
//Переходим к первой записи в массиве
objListPersons.FirstRecord();
//Загружаем в форму данные из массива PersonArr
//для первой записи
objListPersons.LoadDialog();
//Выводим сообщение в заголовке окна
doc.title = "Запись N " + (objListPersons.CurRecord + 1);
}
//Функция-обработчик нажатия на кнопку "<"
function btnPrevious_OnClick() {
//Проверяем, были ли сделаны изменения в форме
if (objListPersons.IsChanged) { //Изменения были сделаны
//Сохраняем данные в XML-файле
objListPersons.SaveData();
//Заново загружаем данные из XML-файла в массив PersonArr
objListPersons.FileToArray();
}
//Переходим к предыдущей записи в массиве
objListPersons.PreviousRecord();
//Загружаем в форму данные из массива PersonArr
//для текущей записи
objListPersons.LoadDialog();
//Выводим сообщение в заголовке окна
doc.title = "Запись N " + (objListPersons.CurRecord + 1);
}
//Функция-обработчик нажатия на кнопку "Новая запись"
function btnNew_OnClick() {
//Проверяем, были ли сделаны изменения в форме
if (objListPersons.IsChanged) { //Изменения были сделаны
//Сохраняем данные в XML-файле
objListPersons.SaveData();
//Заново загружаем данные из XML-файла в массив PersonArr
objListPersons.FileToArray();
}
//Добавляем новую запись в XML-файл
objListPersons.NewRecord();
//Загружаем в форму данные из массива PersonArr
//для добавленной записи
objListPersons.LoadDialog();
//Выводим сообщение в заголовке окна
doc.title = "Добавлена новая запись";
}
//Функция-обработчик нажатия на кнопку "Удалить"
function btnDelete_OnClick() {
//Удаляем текущую запись из XML-файла
objListPersons.DelRecord();
//Загружаем в форму данные из массива PersonArr
//для первой записи
objListPersons.LoadDialog();
//Выводим сообщение в заголовке окна
doc.title = "Запись удалена";
}
//Функция-обработчик нажатия на кнопку ">"
function btnNext_OnClick() {
//Проверяем, были ли сделаны изменения в форме
if (objListPersons.IsChanged) { //Изменения были сделаны
//Сохраняем данные в XML-файле
objListPersons.SaveData();
//Заново загружаем данные из XML-файла в массив PersonArr
objListPersons.FileToArray();
}
//Переходим к следующей записи в массиве
objListPersons.NextRecord();
//Загружаем в форму данные из массива PersonArr
//для текущей записи
objListPersons.LoadDialog();
//Выводим сообщение в заголовке окна
doc.title = "Запись N " + (objListPersons.CurRecord + 1);
}
//Функция-обработчик нажатия на кнопку ">>"
function btnFinal_OnClick() {
//Проверяем, были ли сделаны изменения в форме
if (objListPersons.IsChanged) { //Изменения были сделаны
//Сохраняем данные в XML-файле
objListPersons.SaveData();
//Заново загружаем данные из XML-файла в массив PersonArr
objListPersons.FileToArray();
}
//Переходим к последней записи в массиве
objListPersons.FinalRecord();
//Загружаем в форму данные из массива PersonArr
//для текущей записи
objListPersons.LoadDialog();
//Выводим сообщение в заголовке окна
doc.title = "Запись N " + (objListPersons.CurRecord + 1);
}
//Функция-обработчик изменения текста в полях ввода
function txtBoxOnChange() {
//Устанавливаем признак изменения данных в форме
objListPersons.IsChanged = true;
//Выводим сообщение в заголовке окна
doc.title = "Редактирование данных";
}
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Обработка событий
Обработка событий Теперь самое время рассмотреть один ключевой вопрос Web-программирования: события, их возникновение и
Специальные селекторы CSS, предназначенные для работы с элементами управления
Специальные селекторы CSS, предназначенные для работы с элементами управления Язык CSS предоставляет несколько специальных селекторов, с помощью которых можно неявно привязать стиль к элементам управления на основе их состояния. Все они относятся к структурным
Работа с элементами управления
Работа с элементами управления Толку от Web-формы немного, если вводимые в ней данные никак не обрабатываются. Поскольку мы занимаемся исключительно клиентскими интернет-технологиями, обрабатывать данные мы будем в Web-сценариях.А чтобы обработать в Web-сценариях данные,
Средства библиотеки Ext Core для управления свободно позиционируемыми элементами
Средства библиотеки Ext Core для управления свободно позиционируемыми элементами Настала пора рассмотреть методы объекта Element библиотеки Ext Core, с помощью которых мы можем управлять свободно позиционируемыми элементами Web- страницы. Их немного.Метод position задает способ
Обработка событий
Обработка событий Теперь самое время рассмотреть один ключевой вопрос Web-программирования: события, их возникновение и обработка. Понятие события и его обработки Рассматривая примеры Web-сценариев, мы исходили из предположения, что они выполняются при загрузке
Специальные селекторы CSS, предназначенные для работы с элементами управления
Специальные селекторы CSS, предназначенные для работы с элементами управления Язык CSS предоставляет несколько специальных селекторов, с помощью которых можно неявно привязать стиль к элементам управления на основе их состояния. Все они относятся к структурным
Работа с элементами управления
Работа с элементами управления Толку от Web-формы немного, если вводимые в ней данные никак не обрабатываются. Поскольку мы занимаемся исключительно клиентскими интернет-технологиями, обрабатывать данные мы будем в Web-сценариях.А чтобы обработать в Web-сценариях данные,
Средства библиотеки Ext Core для управления свободно позиционируемыми элементами
Средства библиотеки Ext Core для управления свободно позиционируемыми элементами Настала пора рассмотреть методы объекта Element библиотеки Ext Core, с помощью которых мы можем управлять свободно позиционируемыми элементами Web- страницы. Их немного.Метод position задает способ
Глава 7. Обработка событий
Глава 7. Обработка событий События генерируются оконной системой или Qt в ответ на различные действия. Когда пользователь нажимает или отпускает клавишу или кнопку мышки, генерируется событие клавиши клавиатуры или кнопки мышки; когда окно впервые выводится на экран,
Работа с элементами управления окна
Работа с элементами управления окна Точно так же как и в обычных формах VBA, элементы управления в окне Помощника предоставляют пользователю возможность взаимодействия с программой. Окно Помощника может содержать элементы управления трех типов: флажки, надписи (могут
Дополнительно о работе с элементами управления
Дополнительно о работе с элементами управления В главе 10 вы познакомились с наиболее важными элементами управления и их использованием. В настоящем разделе я дам вам дополнительные советы о работе с отдельными типами элементами управления, а также расскажу об элементах
Работа с базовыми элементами управления
Работа с базовыми элементами управления Пространство имен System.Windows.Forms определяет множество "базовых элементов управления", которые можно видеть во многих типичных окнах (это кнопки, надписи, текстовые окна, переключатели и т.д.). Вы, наверное, уже знаете об основных
Работа с другими элементами управления
Работа с другими элементами управления Итак, мы с вами выяснили, как работать большинством базовых элементов управления Windows Forms (Label, TextBox, и т.д.). Следующей задачей будет рассмотрение элементов графического интерфейса, обладающих более сложными функциональными
Обработка серверных событий
Обработка серверных событий С учетом сегодняшнего состояния World Wide Web нельзя не принимать во внимание природу взаимодействия браузера и Web-сервера. В основе такого взаимодействия лежит цикл запросов и ответов HTTP в процессе выполнения которых состояния не сохраняются. И
2.3. Окно с элементами управления
2.3. Окно с элементами управления После того как мы рассмотрели создание простейшего окна, самое время позаботиться о его наполнении элементами управления. Для стандартных элементов управления в системе уже зарегистрированы классы окон. Их перечень следующий:• BUTTON –