Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Про SelStart, SelLength и SetFocus / 13 сообщений из 13, страница 1 из 1
17.12.2003, 21:22
    #32356068
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Про SelStart, SelLength и SetFocus
Сделал кнопку, которая ищет в большом текстбоксе текст, набранный в маленьком текстбоксе. Пишу:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Private Sub butFind_Click()

Dim p As Integer

With Me!mNettoText
    .SetFocus
    p = InStr(.SelStart + .SelLength +  1 , .Value, Me!txtFind.Value)
    If p >  0  Then
        .SelStart = p -  1 
        .SelLength = Len(Me!txtFind.Value)
    Else
        Beep
    End If
End With

End Sub

У функции InStr специально задал первый параметр, чтобы она искала не с самого начала, а с того места, где стоит курсор (или выделено). Однако при каждом входе в процедуру получается, что SelStart и SelLength оба равны 0.

Что я делаю не так? Спасибо!
...
Рейтинг: 0 / 0
17.12.2003, 21:33
    #32356072
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Про SelStart, SelLength и SetFocus
Дык, Владимир Саныч, когда ты на кнопку жмешь, текстбокс теряет фокус и, соответственно selstart'ы все. Вешай процедуру на клавишу Ф3 какую-нибудь в самом текстбоксе.
...
Рейтинг: 0 / 0
17.12.2003, 21:38
    #32356074
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Про SelStart, SelLength и SetFocus
А сохранить их никак-никак нельзя? (На крайний случай заведу переменные и буду хранить в них...)
...
Рейтинг: 0 / 0
17.12.2003, 21:45
    #32356078
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Про SelStart, SelLength и SetFocus
О. Спасся. :^)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Dim gSelStart As Integer, gSelLength As Integer

Private Sub mNettoText_GotFocus()
Me!mNettoText.SelStart = gSelStart
Me!mNettoText.SelLength = gSelLength
End Sub

Private Sub mNettoText_LostFocus()
gSelStart = Me!mNettoText.SelStart
gSelLength = Me!mNettoText.SelLength
End Sub
...
Рейтинг: 0 / 0
17.12.2003, 21:45
    #32356079
Темный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Про SelStart, SelLength и SetFocus
Ничего не понимаю
При .SetFocus выделяется все содержимое поля.
...
Рейтинг: 0 / 0
17.12.2003, 21:46
    #32356080
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Про SelStart, SelLength и SetFocus
Зачем же нельзя? Можно в тех же переменных специальных. :)
Например на LostFocus.
А на GotFocus восстанавливать положение выделения даже.

Только это будет непривычно пользователю с точки зрения - все поля как обычно работает, а это по-другому.

Опять же в какой-то момент эти переменные все-таки надо обнулять. Либо при получении фокуса другим полем, либо при переходе к другой записи. Что тоже неудобственно, имхо...
...
Рейтинг: 0 / 0
17.12.2003, 21:47
    #32356081
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Про SelStart, SelLength и SetFocus
2 Темный:
Да, именно это я и осознал, когда прочитал ответ Geo. :^)
...
Рейтинг: 0 / 0
17.12.2003, 21:47
    #32356082
Темный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Про SelStart, SelLength и SetFocus
Весело получается.
Если устанавливать фокус ввода программно, то сбиваются юзерские selection
Если не устанавливать, то не работает .SelStart и иже с ней.
Прикольно.
...
Рейтинг: 0 / 0
17.12.2003, 21:48
    #32356083
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Про SelStart, SelLength и SetFocus
2 Geo:

Полностью с тобой согласен. Вот еще кусок, который я для простоты не привел:

Код: plaintext
1.
2.
3.
4.
Private Sub Form_Current()
gSelStart =  0 
gSelLength =  0 
...
End Sub

А юзер этой программы - я сам.
...
Рейтинг: 0 / 0
17.12.2003, 21:48
    #32356084
Темный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Про SelStart, SelLength и SetFocus
Нда. До меня тоже дошло обяснение Geo. Но... Блин, ну жопа же!!!
...
Рейтинг: 0 / 0
17.12.2003, 21:50
    #32356086
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Про SelStart, SelLength и SetFocus
Темныйсбиваются юзерские selection
А они и так, и так сбиваются при потере фокуса.
...
Рейтинг: 0 / 0
17.12.2003, 21:51
    #32356087
Темный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Про SelStart, SelLength и SetFocus
Логично.

з.ы. Очень долго подбирал слово selection вместо "Выделения" :)
...
Рейтинг: 0 / 0
17.12.2003, 21:52
    #32356088
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Про SelStart, SelLength и SetFocus
Испражнения.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Про SelStart, SelLength и SetFocus / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]