Отправляет email-рассылки с помощью сервиса Sendsay

Программирование на Visual Basic

  Все выпуски  

Программирование на Visual Basic 6.0 в примерах.


Информационный Канал Subscribe.Ru

Здравствуйте!!!

Выпуск – 5: События.

Периодичность рассылки: каждая суббота.

Сайт и архив рассылки: www.symsoft.narod.ru

mailto:ger@ellink.ru

Ведущий рассылки: Сёмин Герман Сергеевич aka FerrUM

Привет всем, кто принялся изучать Visual Basic. Мы уже прошли с вами четыре урока, и на этом я познакомлю и расскажу, что такое события, научу работать с мышью и ListBox’ом. ВНИМАНИЕ!!! Если кому-то показалось, что мы слишком быстро движемся, то напишите мне . Как всегда я приведу пример программы, которая будет использовать события мыши и покажет пример работы с ListBoxом. Называться она будет “MouseClick”.

Урок – 5

“MouseClick”

Для начала узнаем, что такое событие.

Программы в операционной системе Windows управляются событиями. То есть если вы нажимаете на кнопку, то происходит событие Click. Двойное нажатие – DblClick (DoubleClick).

В Visual Basic события видны в коде:

Private Sub somebutton_Click

End sub

То есть при нажатии на кнопку somebutton происходит событие Click и выполняются некоторые действия, указанные вами.

Сейчас я расскажу, как можно изменять\вставлять новые события:

1.На форму перенесите кнопку(Button) и дважды нажмите на неё, в окне кода вы увидите следующее:

Private Sub Command1_Click()

End Sub

Это всё означает, что при одном щелчке на кнопку, будет выполнены некоторые действия.

2. Можно изменить события при помощи выпадающего меню (см. рис.):

 

Там есть множество событий для кнопки, с которыми мы познакомимся позже, а сейчас мы познакомимся с событиями характерными для мыши.

 

 

Самые распространённые события для мыши – это Click и DblClick.

 

Событие Click генерируется при щелчке мышью на элементе. Чаще всего используется для кнопок.

 

Событие DblClick генерируется при двух быстрых последовательных щелчках мышью на элементе. Чувствительность двойного щелчка, как вы наверняка знаете, задаётся в настройках мыши в панели управления Windows.

 

Событие DragDrop  генерируется при сбрасывании объекта или его перетаскивания. Событие можно наблюдать, когда вы перетаскиваете значки в Windows. Вообще эта технология называется Drag n Drop (“Взял и перетащил”) и является больной проблемой в современных приложениях. С этой технологией я вас познакомлю далее в примере. Процедура события DragDrop имеет следующий вид:

 

Private Sub someitem_DragDrop(Source As Control, X As Single, Y As Single)

 

 

Обратите внимание на три параметра (Source, X, Y) – перед тем, как выполнять какие-либо действия, нужно проверить их значение. Параметр Source содержит имя элемента, сброшенного на текущий объект, а X и Y – координаты указателя мыши.

 

Событие MouseDown генерируется, если нажать кнопку и не отпускать её. Имеет следующий вид:

Private Sub Command1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

 

X и Y – координаты мыши. Button может принимать следующие значения:

        1           

                               Если нажата левая кнопка мыши.

        2

                               Если нажата правая кнопка мыши.

        4

                               Если нажата средняя кнопка мыши.

 

Пример:

Private Sub Command1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

If  Button = 2 Then  ‘ Если нажата Правая кнопка мыши, то ….

End If

End Sub                                                                                                                                                       

 

 

Параметр Shift также имеет три значения:

         1

                                Если зажата клавиша Shift

         2

                                Если зажата клавиша Ctrl

         4

                                Если зажата клавиша Alt

 

Внимание!!! Чтобы указать две зажатые клавиши, нужно сложить их значения! Например цифра 6 означает, что были зажаты Ctrl и Alt (2 + 4).

 

Событие MouseMove генерируется при перемещении курсора мыши над элементом.

 

Событие MouseUp генерируется при отпускании зажатой кнопки мыши.

 

Вроде всё, а теперь собственно сама программа:

 

  1. Создайте новый проект Standard EXE (File->New Project).
  2. Задайте свойству Name формы Form1 значение frmMain, а Caption – значение Перетаскивание.
  3. Разместите на форму два списка (ListBox) одинакового размера. Один сверху, другой снизу формы, по всей её ширине.
  4. Задайте свойству Name первого списка значение lst1, а свойству DragIcon (картинка перетаскивания) – значение папка visual basic\Common\Graphics\Icons\DragDrop\Drag1pg.ico
  5. Задайте свойству Name первого списка значение lst2, а свойству DragIcon (картинка перетаскивания) – значение папка visual basic\Common\Graphics\Icons\DragDrop\Drag1pg.ico

В общем всё должно выглядеть примерно так:

  1. Дважды щёлкните на форму и в процедуру Form_Load() напишите:

Private Sub Form_Load()’ При загрузке формы

lst1.AddItem "Яблоки"’ При помощи AddItem мы добавляем в ListBox элементы.

lst1.AddItem "Персики"

lst1.AddItem "Апельсины"

End Sub

  1. Добавте в процедуру события lst1_MouseDown():

Private Sub lst1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

If lst1.ListCount > 0 Then’Если началось перетаскивание.

lst1.Drag 1 ‘Тащим объект

End If

End Sub

 

  1. А теперь в lst1_DragDrop():

Private Sub lst1_DragDrop(Source As Control, X As Single, Y As Single)

If Source = lst2 Then ‘ Если перетаскивают со второго ListBoxa, то

lst1.AddItem lst2.Text ‘в первый добавляем перетаскиваемый объект

lst2.RemoveItem lst2.ListIndex ‘ а из второго удаляем его.

End If

End Sub

 

 

  1. А теперь для второго ListBoxa MouseDown  и DragDrop:

Private Sub lst2_DragDrop(Source As Control, X As Single, Y As Single)

If Source = lst1 Then ‘Здесь то же самое, только наоборот

lst2.AddItem lst1.Text

lst1.RemoveItem lst1.ListIndex

End If

End Sub

 

Private Sub lst2_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

If lst2.ListCount > 0 Then

lst2.Drag 1

End If

 

  1. Сохраните и запустите проект и посмотрите, что у вас получилось.

 

Ну вот и всё. Урок закончен. Пишите мне обо всём, что вы не понимаете – я обязательно отвечу!!! В скором времени мы применим все полученные знания при создании одной игры.

Но до неё еще немало нужно изучить, и мы изучим!!! До свиданья!!!

Выпуск – 5: События.

Периодичность рассылки: каждая суббота.

Сайт и архив рассылки: www.symsoft.narod.ru

mailto:ger@ellink.ru

Ведущий рассылки: Сёмин Герман Сергеевич aka FerrUM

 



http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное