Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBA - Visual Basic 2008

Ответить
Настройки темы
VBA - Visual Basic 2008

Аватара для Uzvern

Старожил


Сообщения: 161
Благодарности: 4


Конфигурация

Профиль | Сайт | Отправить PM | Цитировать


Изменения
Автор: Uzvern
Дата: 24-04-2008
Описание: Забыл дописать название темы. Прошу простить.
Подскажите как сделать так : допустим, если нажать на форме правой кнопкой мыши, то вылетет MsgBox(123), а если нажать левой, то MsgBox(098).

Спасибо за внимание.

>>Блин, не дописал в названии темы : Действие при нажатии правой кнопки

Отправлено: 17:47, 24-04-2008

 

Ветеран


Сообщения: 3320
Благодарности: 916

Профиль | Отправить PM | Цитировать


Uzvern, REM это ж основа всего, коменты в коде после этого можно писать дальше по строчки. Тоже что и ' но в топике немного сливается, так что запостил через этот оператор.

Если он вне программы, то есть форма не активна, то без написания драйвер хука никак. А так с помощью свойства e., оно уже встречалось в теме.

Отправлено: 01:03, 10-06-2008 | #111



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Uzvern

Старожил


Сообщения: 161
Благодарности: 4

Профиль | Сайт | Отправить PM | Цитировать


Мне нужно отловить положение курсора когда текст печатается.

Можешь показать на примере? Просто я пробовал с е., чет нифига не лоучается.

Отправлено: 11:09, 10-06-2008 | #112


Ветеран


Сообщения: 3320
Благодарности: 916

Профиль | Отправить PM | Цитировать


А ну это другое дело, только тогда в этом случаи терминологически надо говорить про положения каретки, а не курсора (координаты которого передаёт e.)
Код: Выделить весь код
  Private Sub RichTextBox1_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles RichTextBox1.TextChanged
        Dim Position As Integer = Me.RichTextBox1.SelectionStart
        Dim Line As Integer = Me.RichTextBox1.GetLineFromCharIndex(Position)
        Dim Col As Integer = Position - Me.RichTextBox1.GetFirstCharIndexOfCurrentLine
        Label1.Text = Position & " " & Line & " " & Col
    End Sub
А насчёт глобальной отловки курсора, то теперь (в отличии от VB6) не надо никакого Хука (по видимому он уже в нёдрах НЕТА), так что отловить его возможно, даже когда окно не активно или когда его и вовсе нет
Код: Выделить весь код
Label1.Text = MousePosition.X & " " & MousePosition.Y
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:04, 10-06-2008 | #113


Аватара для Uzvern

Старожил


Сообщения: 161
Благодарности: 4

Профиль | Сайт | Отправить PM | Цитировать


Как сделать цвету формы прозрачным?

Отправлено: 19:55, 10-06-2008 | #114


Ветеран


Сообщения: 3320
Благодарности: 916

Профиль | Отправить PM | Цитировать


Вроде .NET добавил такую возможности компонентам (контролям), только для формы не предусмотрели
И выходит что код Me.BackColor = Color.Transparent на выполнении вызывает ошибку
Цитата:
Control does not support transparent background colors.
Чуть по сложнее будет так
Код: Выделить весь код
Me.BackColor = System.Drawing.Color.Magenta
Me.TransparencyKey = System.Drawing.Color.Magenta
Только теперь в самом деле окно будет прозрачное, даже для кликов мыши (но не для клавы). Элементы, если не указав им цвет явно, тоже станут прозрачными, так что для каждого елемента прийдётся прописать BackColor (TransparencyKey по желанию).

Если лёгкие пути не для тебя и/или влом прописывать для всех элементов их цвета, то тогда есть арсенал реализации VB6/Delphi6 и не такого частного случая.

Техника программирования сложных окон в Visual Basic Генератор кода Form GENERATOR 1.5 по принципу описанному в статьи.
Впервые о технологии написания, а вернее рисования, нестандартных окон я узнал их этой статьи

Delphi: Безбашенные окна. Несмотря на то, что там описано для Delphi я всё же рекомендую к чтению, поскольку описаны нюансы работы с такими окнами.

Отправлено: 03:17, 11-06-2008 | #115


Ветеран


Сообщения: 3320
Благодарности: 916

Профиль | Отправить PM | Цитировать


Весьма странно, что начинает прыгать и не выполнять выборку по Case. Тем не менее, ответ по избавлении от 9 Or 10 Or 12 Or 13 одним махом
Case Else
GoTo generaciya
Остальные комментарии в коде
Код: Выделить весь код
Public Class Form1
    Dim i As Integer
    '   Dim v As Integer = 0 REM Оно нужно только для цикла, пускай там и создаётся
'...
Private Sub ret()
       'Do Until v = 20 REM Чем обусловлен выбор именно этого цикла?
        'v = v + 1 REM Если использовать For данной строчки не потребуется
        REM For и буду использовать
        For v As Integer = 0 To 20
generaciya:
            i = Int(Rnd() * 190 + 1)
            Select Case i
                Case 1 To 8
                    RichTextBox1.Text = RichTextBox1.Text & Chr(i)
                Case 11
                    RichTextBox1.Text = RichTextBox1.Text & Chr(i)
                Case 14 To 190
                    RichTextBox1.Text = RichTextBox1.Text & Chr(i)
                    'Case 9 Or 10 Or 12 Or 13 REM Если интересуют значение только 1-8, 11, 14-190 то здесь выборку не стоит делать, а написать
                Case Else
                    GoTo generaciya
            End Select
        Next v
    End Sub
'...
Хороший пример, что б показать как можно комбинировать операторы-комментаторы. Rem я использую - когда явно пишу комментарии, а ' - для отключения строчек кода.
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:35, 11-06-2008 | #116


Аватара для Uzvern

Старожил


Сообщения: 161
Благодарности: 4

Профиль | Сайт | Отправить PM | Цитировать


Admiral, неа. Все-равно 10-ка проскакивает!

Отправлено: 18:16, 11-06-2008 | #117


Ветеран


Сообщения: 3320
Благодарности: 916

Профиль | Отправить PM | Цитировать


Да уж. Первый самый код должен был нормально отработать, но идеологически боролся с последствиями, а не с причиной.
Вот следующий код ни шагу не даст i пока не убедится, что она не принимает нежелательных значений
Код: Выделить весь код
        For v As Integer = 0 To 20
            Do
            i = Int(Rnd() * 190 + 1)
            Loop Until (i <> 9) And (i <> 10) And (i <> 12) And (i <> 13)
            If i = 10 Then Debug.Print(i)Rem это контрольная строчка для проверки через Immediate Window появления значения i 10
REM подробнее про это окно здесь ->http://msdn.microsoft.com/en-us/library/f177hahy(VS.80).aspx 
            RichTextBox1.Text = RichTextBox1.Text & Chr(i)
        Next v

Отправлено: 19:03, 11-06-2008 | #118


Аватара для Uzvern

Старожил


Сообщения: 161
Благодарности: 4

Профиль | Сайт | Отправить PM | Цитировать


Admiral, ты не поверишь...но она все-равно проскакивает!
Вот, залью проект. Может чего с кодом накосматил...
http://slil.ru/25889104

Объясни пожалуйса поподробней что это и как это можно использовать
Код: Выделить весь код
Debug.Print()

Отправлено: 20:45, 11-06-2008 | #119


Ветеран


Сообщения: 1404
Благодарности: 135

Профиль | Отправить PM | Цитировать


Uzvern
Критерий правильности: отсутствие появления перехода на новую строку?
Отключи тогда еще 11

Код: Выделить весь код
Loop Until (i <> 9) And (i <> 10) And (i <> 12) And (i <> 13) And   (i <> 11)

Debug.Print работать будет по видимому только в поздних студиях

-------
Ehhh.. what's up, doc?..


Отправлено: 21:36, 11-06-2008 | #120



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBA - Visual Basic 2008

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VBA - MS Visual Basic 2008 Expres Edition файлы проекта Anton Naumov Программирование и базы данных 7 14-05-2010 14:09
VBA - Visual basic 2008 Anton Naumov Программирование и базы данных 1 02-01-2010 22:35
visual basic 6 иоанн Хочу все знать 1 27-04-2009 18:51
visual basic 6 guma Программирование и базы данных 1 26-04-2007 20:41
Visual basic carlos Программирование и базы данных 1 04-08-2003 02:03




 
Переход