Страница: 1 |
Добрый день! Подскажите, пожалуйста, как решить проблему: есть список слов, слово сочитаний (ListBox) необходимо следить за вводом текста в документе, и если в списке есть слова начинающиеся на уже введенное сочитание букв в документе, то предложить это слово пользовителю для автоматического ввода. Как же делать эту "слежку"? и постоянно следить нет ли чего похожего в списке?
Эта фишка у меня делает аналогичную работу в комбобоксе. Алгоритм поиска дубовый - напишешь более быстрый, поделись - мне лень Просто мои проги юзаются на достаточно быстрых машинах, ну я и не напрягался Комментарии отсутствуют по этой же причине (лень) - и так все просто. В общем вот тебе принцип - затачивай под свои нужды. Public Sub SetComboListIndex( _ Страница: 1 |
Вопрос: Как отслеживать вводимые слова, и сравнивать их...
Добавлено: 08.05.03 11:31
Автор вопроса: *^angel^* | ICQ: 170236481
Ответы
Всего ответов: 1
Номер ответа: 1
Автор ответа:
hedgehog
ICQ: 175571327
Вопросов: 15
Ответов: 207
Web-сайт:
Профиль | | #1
Добавлено: 09.05.03 00:06
Combo As ComboBox, _
Optional ComboText As String)
Dim i As Integer
Dim S As String
Dim Index As Integer
Dim L As Integer, U As Integer, C As Integer
With Combo
Index = -1
If ComboText = "" Then ComboText = .Text
If ComboText > "" Then
U = .ListCount - 1
C = L + (U - L) \ 2
Do Until C = L Or C = U
S = .List(C)
If LCase(Left(S, Len(ComboText))) = LCase(ComboText) Then
Index = C
Exit Do
ElseIf LCase(Left(S, Len(ComboText))) < LCase(ComboText) Then
L = C
Else
U = C
End If
C = L + (U - L) \ 2
Loop
End If
.ListIndex = Index
.SelStart = Len(ComboText)
If Len(.Text) >= Len(ComboText) Then .SelLength = Len(.Text) - Len(ComboText)
End With
End Sub