LoveRead.info » Книги » Разная литература » Интернет-журнал "Домашняя лаборатория", 2008 №7 - Журнал «Домашняя лаборатория»

Интернет-журнал "Домашняя лаборатория", 2008 №7 - Журнал «Домашняя лаборатория»

Книгу Интернет-журнал "Домашняя лаборатория", 2008 №7 - Журнал «Домашняя лаборатория» читаем онлайн бесплатно полную версию! Чтобы начать читать не надо регистрации. Напомним, что читать онлайн вы можете не только на компьютере, но и на андроид (Android), iPhone и iPad. Приятного чтения!

121 0 18:09, 02-02-2024

Книга Интернет-журнал "Домашняя лаборатория", 2008 №7 - Журнал «Домашняя лаборатория» читать онлайн бесплатно без регистрации

Интернет-журнал колхозников, инженеров и разнорабочих науки. Журнал содержит материалы найденные в Интернет или написанные для Интернет и является полностью некоммерческим.

    1 ... 177 178 179 180 181 182 183 184 185 ... 192
    Перейти на страницу:
    клавиша Shift"

    Case 2: Debug.Print "Нажата клавиша Ctrl"

    Case 3: Debug.Print "Нажаты клавиши Shift, Ctrl"

    Case 4: Debug.Print "Нажата клавиша Alt"

    Case 5: Debug.Print "Нажаты клавиши Shift, Alt"

    Case 6: Debug.Print "Нажаты клавиши Ctrl, Alt"

    Case 7: Debug.Print "Нажаты клавиши Shift, Ctrl, Alt"

    End Select

    'Определяем координаты острия курсора мыши во время нажатия:

    Debug.Print "Х="; X, "Y="; Y

    End Sub

    В численном значении Shift есть система. Посмотрите в процедуре, чему "равны" клавиши Shift, Ctrl, Alt по одиночке. 1, 2 и 4. Так вот, их совместное нажатие "равно" их сумме. Убедитесь.[27]

    Поместите на форму несколько разных объектов. Обратите внимание, что при щелчке по ним процедура не срабатывает. Это естественно, у каждого объекта есть свое событие MouseDown.

    Событие MouseUp работает аналогично.

    Пример программы:

    Вот программа для поставленной выше задачи на точность руки и глаза:

    Dim Х_кружка As Integer

    Dim Y_Kpy>KKa As Integer

    Dim Расстояние_до_кружка As Double

    Private Sub Form_Load()

    Randomize

    End Sub

    'Процедура для создания мелькнувшего кружка:

    Private Sub Command1_Click()

    Х_кружка = 4000 * Rnd 'Определяем координаты кружка (центра кружка)

    Y_кружка = 4000 * Rnd

    ForeColor = vbBlack 'Чертим кружок черным цветом

    Circle (Х_кружка, Y_кружка), 50

    For i = 1 То 3000000: Next 'Пауза, чтобы мы успели заметить кружок

    ForeColor = BackColor 'Стираем кружок цветом фона

    Circle (Х_кружка, Y_Kpy>KKa), 50

    End Sub

    'Процедура для определения расстояния от щелчка до кружка:

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

    Расстояние_до_кружка = Sqr ((X — Х_кружка) A 2 + (Y — Y_кружка)^2)

    MsgBox ("Промах на " & Int(Расстояние_до_кружка) & " твип.")

    End Sub

    Пояснение того, как вычислялось расстояние (для тех, кто знает теорему Пифагора): Мысленно соедините отрезком прямой центр окружности и точку щелчка.

    Это будет гипотенуза прямоугольного треугольника, катеты которого проведите вертикальной и горизонтальной линией. Нетрудно заметить, что горизонтальный катет равен X — Х_кружка, а вертикальный равен Y — У_кружка (знак я не учитываю). Гипотенуза же равна нужному нам расстоянию. Теорема Пифагора гласит, что квадрат гипотенузы равен сумме квадратов катетов. Отсюда, гипотенуза равна корню квадратному из суммы квадратов катетов (каковая формула и записана в программе).

    Событие MouseMove

    Это событие возникает, как только мы сдвигаем мышку с места, а во время движения мыши оно возникает постоянно и многократно. Оно похоже на событие MouseDown, но есть и отличия. Запустите и проверьте эту поясняющую программу:

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

    'Определяем, какие клавиши мыши удерживаются нажатыми во время движения:

    Select Case Button

    Case 0: Debug.Print "He нажата ни одна клавиша мыши"

    Case 1: Debug.Print "Нажата левая клавиша"

    Case 2: Debug.Print "Нажата правая клавиша"

    Case 3: Debug.Print "Нажаты левая, правая клавиши"

    Case 4: Debug.Print "Нажата средняя клавиша"

    Case 5: Debug.Print "Нажаты левая, средняя клавиши"

    Case 6: Debug.Print "Нажаты правая, средняя клавиши"

    Case 7: Debug.Print "Нажаты левая, правая, средняя клавиши"

    'Определяем, какие из трех клавиш клавиатуры (Shift, Ctrl, Alt) удерживаются нажатыми во время движения:

    Select Case Shift

    Case 0: Debug.Print "He нажата ни одна клавиша Shift, Ctrl, Alt'

    Case 1: Debug.Print "Нажата клавиша Shift"

    Case 2: Debug.Print "Нажата клавиша Ctrl"

    Case 3: Debug.Print "Нажаты клавиши Shift, Ctrl"

    Case 4: Debug.Print "Нажата клавиша Alt"

    Case 5: Debug.Print "Нажаты клавиши Shift, Alt"

    Case 6: Debug.Print "Нажаты клавиши Ctrl, Alt"

    Case 7: Debug.Print "Нажаты клавиши Shift, Ctrl, Alt"

    End Select

    'Определяем, координаты острия курсора мыши во время движения:

    Debug.Print "Х="; X, "Y="; Y

    End Sub

    Если событие MouseDown сообщает о нажатии какой-то одной клавиши мыши, то MouseMove сообщает о любой комбинации мышиных клавиш. Если событие MouseDown сообщает о событии нажатия какой-то клавиши, то MouseMove сообщает о состоянии мышиных клавиш (удерживаются нажатыми или нет).

    Мышь рисует

    Вот программа, превращающая мышку в карандаш:

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

    PSet (X, Y)

    End Sub

    Запустите ее и медленно ведите мышкой по форме. За мышкой остается нарисованный след.

    Задание 110: Сделайте так, чтобы мышь рисовала только при нажатой левой клавише, что более привычно для всех, кто работал в графических редакторах.

    Задание 111: Сделайте так, чтобы при щелчке по правой клавише толщина линии возрастала на 1.

    Работа с клавиатурой

    Поставим задачу сделать игру, где наш миниатюрный гоночный автомобиль будет под управлением клавиш клавиатуры нестись от старта до финиша. Для этого вам нужно познакомиться с событиями, связанными с клавиатурой. Их три: KeyDown (клавиша нажата), KeyUp (клавиша отпущена) и KeyPress.(по клавише щелкнули). Нас пока интересуют только первые два.

    События KeyDown и KeyUp

    Создайте проект из одной формы, без элементов управления. Зайдите в окно кода и выберите для объекта Form событие KeyDown. В появившуюся заготовку процедуры запишите следующий код:

    Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

    'Определяем, какая клавиша клавиатуры была нажата:

    Select Case KeyCode

    Case vbKeyUp: Debug.Print "Нажата стрелка вверх"

    Case vbKeyDown: Debug.Print "Нажата стрелка вниз"

    Case vbKeyLeft: Debug.Print "Нажата стрелка налево"

    Case vbKeyRight: Debug.Print "Нажата стрелка направо"

    Case vbKeyW: Debug.Print "Нажата клавиша W"

    Case vbKey7: Debug.Print "Нажата клавиша 7"

    Case vbKeySpace: Debug.Print "Нажата клавиша пробела"

    Case vbKeyDelete: Debug.Print "Нажата клавиша Delete"

    Case vbKeyF4: Debug.Print "Нажата клавиша F4"

    Case vbKeyAdd: Debug.Print "Нажата клавиша +"

    Case vbKeyEscape: Debug.Print "Нажата клавиша Esc"

    End Select

    'Определяем, какие из трех клавиш клавиатуры (Shift, Ctrl, Alt) при этом были в нажатом состоянии:

    Select Case Shift

    Case 0: Debug.Print "He нажата ни одна клавиша Shift, Ctrl, Alt

    Case 1: Debug.Print "Нажата клавиша Shift"

    Case 2: Debug.Print "Нажата клавиша Ctrl"

    Case 3: Debug.Print "Нажаты клавиши Shift, Ctrl"

    Case 4: Debug.Print "Нажата клавиша Alt"

    Case 5: Debug.Print "Нажаты клавиши Shift, Alt"

    Case 6: Debug.Print "Нажаты клавиши Ctrl, Alt"

    Case 76 Debug.Print "Нажаты клавиши Shift, Ctrl,

    1 ... 177 178 179 180 181 182 183 184 185 ... 192
    Перейти на страницу:
    1. Жалоба
    Отзывы - 0

    Прочитали книгу? Предлагаем вам поделится своим отзывом от прочитанного(прослушанного)! Ваш отзыв будет полезен читателям, которые еще только собираются познакомиться с произведением.


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

    • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
    • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
    • 3. Просьба отказаться от нецензурной лексики.
    • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

    Надеемся на Ваше понимание и благоразумие. С уважением, администратор LoveRead.info.


    Установить VPN и читай слушай бесплатно

    Новые отзывы

    1. Валентина Валентина04 июль 13:25 Большое спасибо за интересную тему.  Сюжет заманчиввй,интересный. Жду продолжения ... Лекарь Фамильяров. Том 7 - Александр Лиманский
    2. Наталья По Наталья По01 июль 10:12 Ужасный перевод:(... Аркадия - Эрин Дум
    3. Вика Вика29 июнь 21:56 Какая хрень с первых строк.  У ребенка в 14 месяце не может быть черепно мозговой травмы при падании с дивана ... Вернуть семью любой ценой - Чарли Ви
    Все комметарии
    Новинки бесплатной онлайн библиотеки