Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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




Задание

Убегающая кнопка

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

1. Создать в Microsoft Excel форму шириной 350 пикселей и высотой 200 пикселей.

2. Разместить на форме кнопки "Да", "Нет" и надпись: "Хотите ли вы получить прибавку к зарплате?".

3. Настроить свойства кнопки с надписью "Да" таким образом, чтобы на нее нельзя было перевести фокус ввода.

4. Написать программу, которая при наведении указателя мыши на кнопку с надписью "Да" перемещала бы эту кнопку в пределах формы.

Создадим новую форму, установим следующим образом ее свойства:

Name (Имя) — frm_MovingButton

Width (Ширина) — 350

Height (Высота) — 200

Caption (Заголовок формы) — Тест

Добавим на форму следующие элементы управления (табл. 4.4.)

Таблица 4.4. Элементы управления и их свойства
Название Name (Имя) Caption (Надпись) Tabstop (Фокус ввода по нажатию клавиши Tab) Height (Высота) Width (Ширина)
Кнопка №1 cmd_Yes Да False    
Кнопка №2 cmd_No Нет      
Надпись lbl_text Хотите ли вы получить прибавку к зарплате?      

На рис. 4.20. вы можете видеть форму frm_MovingButton.

Рис. 4.20. Форма задачи об убегающей кнопке в окне редактора VBA

 

Дважды щелкнем по cmd_Yes. В редакторе кода выберем в поле событий MouseMove.

В тело обработчика события MouseMove для кнопки cmd_Yes введите такой текст (листинг 4.16).

cmd_Yes.Left = Rnd * 250

cmd_Yes.Top = Rnd * 150

Листинг 4.16. Код обработчика MouseMove кнопки cmd_Yes

 

В листинге 4.16. мы обращаемся к следующим свойствам кнопки cmd_Yes:

· Left — расстояние между кнопкой и левым краем формы.

· Top — расстояние между кнопкой и верхним краем формы.

Функция Rnd возвращает случайное число от 0 до 1. Для вычисления нового расстояния от кнопки до левого края формы умножаем случайное число на 250, до верхнего края формы – на 150. Эти значения взяты не случайно. Ниже приведен их расчет.

250 = (ширина формы) – (ширина кнопки) – (запас по ширине)= 350-80-20

150 = (высота формы) – (высота кнопки) – (запас по высоте) = 200 – 30 – 20

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

Кнопки на формах можно нажимать не только с помощью мыши. Если на кнопке установлен фокус ввода (как вы знаете, он перемещается по элементам управления по нажатию клавиши Tab на клавиатуре), "нажать" на кнопку можно, нажав клавишу Пробел или Enter. Свойство Tabstop кнопки cmd_Yes мы установили равным False — то есть кнопка не сможет получить фокус ввода и ее нельзя будет нажать даже с использованием клавиатуры.

Для того чтобы программа приобрела законченный вид, добавим обработчики события Click для кнопок cmd_No и cmd_Yes. Нажатие на кнопку cmd_No должно вывести надпись: "Спасибо за участие в опросе" и завершить программу. А если пользователю все же удастся нажать на неуловимую cmd_Yes (это возможно, если кнопка "прыгнет" так, что окажется под указателем мыши), должна вывестись какая-нибудь подходящая надпись.

Для удобства работы с программой добавьте на лист MS Excel кнопку cmd_Show_Form, которая вызывала бы форму программы. Используйте метод Show формы frm_MovingButton, чтобы отобразить ее по нажатию на кнопку (листинг 4.17).

Frm_MovingButton.Show

Листинг 4.17. Код обработчика Click кнопки cmd_Show_Form

 

На рис. 4.21. вы можете видеть запущенную форму программы в процессе работы с ней на фоне листа Microsoft Excel с кнопкой для вызова этой формы.

Рис. 4.21. Программа с убегающей кнопкой в действии




Поделиться с друзьями:


Дата добавления: 2014-01-05; Просмотров: 494; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.