powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Про SelStart, SelLength и SetFocus
13 сообщений из 13, страница 1 из 1
Про SelStart, SelLength и SetFocus
    #32356068
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Сделал кнопку, которая ищет в большом текстбоксе текст, набранный в маленьком текстбоксе. Пишу:

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

Код: 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
Про SelStart, SelLength и SetFocus
    #32356079
Фотография Темный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ничего не понимаю
При .SetFocus выделяется все содержимое поля.
...
Рейтинг: 0 / 0
Про SelStart, SelLength и SetFocus
    #32356080
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зачем же нельзя? Можно в тех же переменных специальных. :)
Например на LostFocus.
А на GotFocus восстанавливать положение выделения даже.

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

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

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

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

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

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


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