Инструмент CodeEdit от BitShape

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Kotofeich
Новичок
Новичок
 
Сообщения: 33
Зарегистрирован: 06.08.2004 (Пт) 19:59

Инструмент CodeEdit от BitShape

Сообщение Kotofeich » 12.08.2005 (Пт) 21:04

Я использую CodeEdit от BitShape. При нажатии кнопки на нем, происходит событие keydown, я выполняю в нем некоторые действия, а как мне запретить дальше довыполнить событие keydown? Например я нажал кнопку "k", выполнил действия, и программа добавила мне текст "k". Как сделать чтобы она ничего не добавила? Кто знает о чем речь, помогите!

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 12.08.2005 (Пт) 22:25

Если в качестве параметра процедуры передаётся код нажатой клавиши (KeyCode), то после своих действий обнуляй код (KeyCode=0) и делай Exit Sub.
Это Ж-ж-ж-ж неспроста (с) Винни-Пух

Kotofeich
Новичок
Новичок
 
Сообщения: 33
Зарегистрирован: 06.08.2004 (Пт) 19:59

Сообщение Kotofeich » 13.08.2005 (Сб) 8:30

Не работает. Такое срабатовало в RichTextBox, а тут почему-то нет. И здесь keydown - это функция, а не процедура. Пробовал и итоговое значение функции менять - ничего не помогает. Вот попробуй сделать, чтобы при нажатии кнопок ничего ни писалось...

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 13.08.2005 (Сб) 10:07

Kotofeich писал(а):Не работает. Такое срабатовало в RichTextBox, а тут почему-то нет. И здесь keydown - это функция, а не процедура. Пробовал и итоговое значение функции менять - ничего не помогает. Вот попробуй сделать, чтобы при нажатии кнопок ничего ни писалось...

Где пробовать? Код дай. А лучше проект.
Это Ж-ж-ж-ж неспроста (с) Винни-Пух

GM
programador
programador
 
Сообщения: 1427
Зарегистрирован: 24.06.2003 (Вт) 15:56
Откуда: 194.67.52.100

Сообщение GM » 15.08.2005 (Пн) 7:55

Да у меня такая же проблема, при нажатии Ctrl-Space, пробел как вы поняли не должен появлятся. Но даже когда я поставил (KeyCode=0), во всех процедурах обработки клавиш, все равно он появляется.
الفيجوال بيسك الرابح

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 15.08.2005 (Пн) 19:45

Кладём на форму тектбокс и вставляем следующий код. Конечно, некузяво через флаг, но видимо по другому никак. :(

Код: Выделить всё

Dim bNotExec As Boolean
Option Explicit


Private Sub Form_Load()
    bNotExec = False
    Text1.Text = "Нажмите CTRL+SPACE"
End Sub

Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
    Select Case Shift
        Case vbCtrlMask
            Select Case KeyCode
                Case vbKeySpace
                    Debug.Print "Ок."
                    KeyCode = 0
                    bNotExec = True
                    Exit Sub
            End Select
    End Select
End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)
    If bNotExec Then
        bNotExec = Not bNotExec
        KeyAscii = 0
        Exit Sub
    End If
End Sub
Это Ж-ж-ж-ж неспроста (с) Винни-Пух

GM
programador
programador
 
Сообщения: 1427
Зарегистрирован: 24.06.2003 (Вт) 15:56
Откуда: 194.67.52.100

Сообщение GM » 16.08.2005 (Вт) 7:18

Да с текстбоксами оно может и работает, ну вот с CodeEdit нет . Там скорее должен выйти такой код
Код: Выделить всё
Option Explicit

Dim bNotExec As Boolean



Private Sub Form_Load()
    bNotExec = False
    text1.Text = "Нажмите CTRL+SPACE"
End Sub



Private Function text1_KeyDown(ByVal Control As CodeMaxCtl.ICodeMax, ByVal KeyCode As Long, ByVal Shift As Long) As Boolean
Select Case Shift
        Case vbCtrlMask
            Select Case KeyCode
                Case vbKeySpace
                    Debug.Print "Ок."
                    text1_keydown= true
                    bNotExec = True
                    Exit Function
            End Select
    End Select

End Function

Private Function text1_KeyPress(ByVal Control As CodeMaxCtl.ICodeMax, ByVal KeyAscii As Long, ByVal Shift As Long) As Boolean
    If bNotExec Then
        bNotExec = Not bNotExec
                    text1_keypress= true
        Exit Function
    End If
End Function
الفيجوال بيسك الرابح

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 16.08.2005 (Вт) 21:10

GM, кстати, что там насчёт ридера? Как продвигаются дела?
И ещё. Решил перенести на работу простым копированием на "чистую" машину. Не запускается. Кричит про ошибку сохдания объекта ActiveX.
Подскажи, какие ocx используются.
И через проксю не хочет посылать сообщения (ответы).
Хотелка - добавь настройки прокси (с авторизацией).
Если не хочешь сюда отвечать, тогда в мыло.
Спасибо.
Это Ж-ж-ж-ж неспроста (с) Винни-Пух


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 64

    TopList