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

..........................................................................................................................

[ Главная ] [ Статьи ] [ Для новичков ] [ Примеры ] [ Программы ] [ Microsoft Agent 2.0 ] [ Пособие ] [ Уроки ] [ Разное ]
..........................................................................................................................


Кнопки, клавиши и все о них

Как поменять цвет кнопки (CommandButtan)
Имитация нажатия кнопки
Управление клавишами <- и ->
Кнопки - картинки
Кнопка Help в MsgBox
Эмуляция программы на нажатие Enter, при системном сообщении из браузера
          Как поменять цвет кнопки (CommandButtan)
1. Устанавливаешь новую кнопку
2. В свойстве Style для кнопки устанавливаешь значение 1 - графический
3. В свойстве BackColor в палитре выбираешь нужный цвет.
 Назад

         Имитация нажатия кнопки   

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

В зависимости от условий задачи Вы или устанавливаете  свойствo Text1.TabIndex = 0 (на стадии разработки) или передаете ему фокус  Text1.SetFocus .

В процедуру события KeyDown  текстового поля вписываем

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

If KeyCode = 97 Then Command1.Default = True

End Sub

а в 
процедуру события KeyUp

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

If KeyCode = 97 Then Command1.Default = False

End Sub


В
текстовом поле Text1.Text  начинает печататься вводимая информация, а кнопки на панели указывают какя клавиша была нажата. Пример приведен только для одной клавиши - 1.

 Назад 


     Управление клавишами <- и ->

Приветствую всех Visual Basic-истов. Решился наконец написать пару строчек для одного из моих любимых сайтов. Недавно пришлось заглянуть в Help - файл моего земляка, Армена Мнацаканяна, а я туда частенько заглядываю, но ответа на свой вопрос не нашел. Мне нужно было, чтоб при помощи стрелок 'Вправо' и 'Влево' переходить от одного TextBox к другому. Сейчас решение есть и я его привожу.

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

If KeyCode = 39 And Text1.SelStart = Len(Text1.Text) Then

 Text2.SetFocus   

End Sub

KeyCode=39 - фиксируется нажатие клавиши 'Вправо'
Text1.SelStart = Len(Text1.Text) –Определяем местонахождение курсора, в данном случае, что б курсор находился в конце Text1 Text2.SetFocus – передаем фокус Text2

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

If KeyCode = 37 And Text2.SelStart = 0 Then

 Text1.SetFocus  

End Sub

KeyCode = 37 - фиксируется нажатие клавиши 'Влево'
Text2.SelStart = 0
  – определяем местонахождение курсора, в данном случае, что б курсор находился в начале Text2.Tex1.SetFocus – передаем фокус Text1
 

 Назад


         Кнопки - картинки

Очень часто вместо обычных кнопок используются картинки. Т.е. существует всего три картинки - одна на которую будут жать (img1), вторая отжатая (img2) и третья нажатая (img3) (img2 и img3 - невидимы). Делаем это так:

Private Sub Form_Load()
    'при загрузке формы картинка 1 принимает вид _
     картинки 2 (отжатая)
    img1.Picture = img2.Picture
End Sub

Private Sub Image1_MouseDown(Button As Integer, Shift As Integer, _
X As Single, Y As Single)
    'при нажатии мышкой на картинку 1, она принимает вид _
     картинки 3 (нажатая)
    img1.Picture = img3.Picture
End Sub

Private Sub Image1_MouseUp(Button As Integer, Shift As Integer, _
X As Single, Y As Single)
    'при отпускании кнопки мышки картинка 1, она снова принимает вид _
     картинки 2 (отжатая)
    img1.Picture = img2.Picture
End Sub

Этот приём знает каждый... Но есть в нём один недостаток, а именно: при серии непрерывных кликов на объект картинка почему-то реагирует через раз. Т.е. то нажмётся, то не нажмётся. Так вот вот сам совет :-) : чтобы этого избежать в событие Img1_MouseDown нужно вставить строку

SendKeys "A"

Т.е. картинке одновременно посылается нажатая клавиша. Почему так, понять не могу сам. Но в скобках, конечно же, не важна буква "A" - там может стоять и В и С. Главное само событие.

 Назад

 


   Кнопка Help в MsgBox

Если Вам нужно сделать MsgBox с кнопкой на определённую станицу Вашего хелпа, сделайте следующее:

MsgBox "Азбука Visual Basic", vbMsgBoxHelpButton, "http://www.cm.f2s.com", _
"с:\путь_к_файлу", 10

Где 10 - это номер страницы Вашего хелп-файла!

 Назад


             Напишите как , что бы прога на Байсике эмулировала нажатие Enter на системном   сообщении из браузера. Пришло много аллертов , а неохота выгружать браузер - лучше пусть прога старается нажимает ENTER на сообщение.

Если я всё правильно понял, то от меня требуется программа, которая периодически шлёт браузеру нажатие клавиши ENTER? Итак, вперёд! Для того, чтобы чему-нибудь послать нажатие клавиши, это нужно сначала активизировать. Для активизирования окна отлично подходит комманда AppActivate. Но она требует заголовок окна, которое нужно активизировать, или хотя бы первые буквы заголовка. В этом случае нам повезло - когда браузер шлёт алерты, то в заголовках стоит его имя! В моём случaе это Netscape. Если же у Вас Internet Explorer, то и стоять там будет что-то подобное :-) - что выявите сами. А теперь нам нужно написать саму программу.

1.Создайте стандартный проект.
2.На него повешайте объект таймер. Интервал же нужно установитьв зависимости от того, с какой частотой должны посылаться нажатия. Возьмём одну десятую секунды - Interval = 100.
3.Теперь нужно сделать двойной клик по таймеру и открыть окно Code. Впишите:

Private Sub Timer1_Timer()

On Error GoTo abc 'в случае возникновения ошибки выходим на _
                   метку abc, ошибки возникнут непременно, т.к. _
                   программа будет работать и во время отсутствия _
                   окон - аллертов. Активирование же окна, которого нет _
                   вызывает ошибку
AppActivate "Netscape" 'Активируем окно с заголовком Netscape _
                       '(Internet Explorer)
SendKeys "~"           'Посылаем клавишу ENTER: строка "~" идеентична
                 'строке "{ENTER}"

abc:     'а это метка abc, на которую мы выходим при возникновинии _
                ошибки, метка abc ведёт нас прямо к выходу из процедуры
End Sub

Теперь же нужно просто запустить программу и все аллерты она будет закрывать сама! Кстати, получилась весьма полезная программка для пользователей Netscape - он всё время спрашивает загружать или нет? :)

 Назад

..........................................................................................................................

[ Главная ] [ Диски ] [ Книги ] [ Архив рассылки ] [ Архив новостей ] [ Готовые кусочки программ ] [ Карта сайта ]
..........................................................................................................................

По страницам сайта Visaul Progs
или Изучение Visual Basic
Рассылка 'По страницам сайта Visaul Progs' >>> Подпишись на рассылку - будешь получать новые статьи , примеры и много полезной информации из первых рук!!! >>>Если у вас есть статья которой нет на сайте
пришлите ее мне-------->
Послать статью
>>>Если вы хотите задать вопрос
пишите-------->
Мне нужна помощь


Рейтинг сайтов YandeG Rambler's Top100
Реклама:

...:::Design by Mystf0rse 2005-2010 year:::...