Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут
закрыты.
Читайте
требования к создаваемым темам.
-
Tok
-
- Обычный пользователь

-
-
- Сообщения: 51
- Зарегистрирован: 28.09.2003 (Вс) 16:14
- Откуда: Алчевск (Украина)
-
Tok » 22.05.2004 (Сб) 1:46
Нужно найти Item в Листе. Т. е. если есть в итемах некоторая строчка, то MsgBox "True".
-
A.A.Z.
-
- Член-корреспондент академии VBStreets

-
-
- Сообщения: 3035
- Зарегистрирован: 30.06.2003 (Пн) 13:38
-
A.A.Z. » 22.05.2004 (Сб) 14:51
1)
- Код: Выделить всё
Sub FindString(ByVal What As String)
Dim I&
For I = 0 To List1.ListCount - 1
List1.ListIndex = I
If List1.Text = What Then MsgBox "Есть": Exit Sub
Next
MsgBox "Нет"
End Sub
2)
- Код: Выделить всё
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Any) As Long
Private Const LB_FINDSTRING As Long = &H18F
Sub FindString(ByVal What As String)
Dim Res1&, Res2 As Boolean
Res1 = SendMessage(List1.hWnd, LB_FINDSTRING, -1, What)
Select Case Res1
Case 0
MsgBox "Нет!"
Case Else
MsgBox "Есть!"
End Select
End Sub
Нет меня больше
-
Tok
-
- Обычный пользователь

-
-
- Сообщения: 51
- Зарегистрирован: 28.09.2003 (Вс) 16:14
- Откуда: Алчевск (Украина)
-
Tok » 23.05.2004 (Вс) 2:15
Спасибо! Как все оказалось просто...
Еще раз - Большое Спасибо!
-
Tok
-
- Обычный пользователь

-
-
- Сообщения: 51
- Зарегистрирован: 28.09.2003 (Вс) 16:14
- Откуда: Алчевск (Украина)
-
Tok » 28.05.2004 (Пт) 4:00
Хм... Почему-то второй код находит строку только если она первая в листбоксе. (?)
А в первом коде подскажите как продолжить действия после MsgBox "Есть", т.е. после этой мессаги мне надо где-то кнопочку сделать активной, где-то что-то скрыть\показать?
Просто еще никогда не встречал строку со странным двоеточием (If List1.Text = What Then MsgBox "Есть": Exit Sub)...
-
Tarik
-
- Агент Системы

-

-
- Сообщения: 1222
- Зарегистрирован: 03.01.2003 (Пт) 16:05
- Откуда: Москва
-
Tarik » 28.05.2004 (Пт) 11:45
Двоеточие - это то же самое, что и переход на другую строку. То есть куски
- Код: Выделить всё
If List1.Text = What Then MsgBox "Есть": Exit Sub
и
- Код: Выделить всё
If List1.Text = What Then
MsgBox "Есть"
[сюда можно вставить что-то своё]
Exit Sub
End if
абсолютно идентичны
Ever tried? Ever failed? No matter. Try again! Fail again! Fail better!
-
Tok
-
- Обычный пользователь

-
-
- Сообщения: 51
- Зарегистрирован: 28.09.2003 (Вс) 16:14
- Откуда: Алчевск (Украина)
-
Tok » 29.05.2004 (Сб) 2:54
Да, но тогда выскакивает ошибка компиляции: "Next without For"!
Вернуться в Visual Basic 1–6
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 33