Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > ListBox


Автор: eldar22 15.8.2009, 21:51
Добрый smile!
Я тут опять по поводу list появилась проблема
Допустим есть list в нём есть записи чтобы бегать по этим записям достаточно 
Код

List1.ListIndex = List1.ListIndex + 1
 ну вот проблема когда записи заканчиваются то появляется ошибка  run time error 380 

Как вообще сделать чтобы эта ошибка не появлялась
Я пробывал проверку на существование записей
Код

If List1.ListCount < 1 Then Label1.Caption = "записей нет"
 ну все равно  в конце когда доходит до последней записи  появляется эта ошибка

Автор: Naghual 15.8.2009, 22:02
Вы не уловили сути.
Код

If List1.ListIndex < List1.ListCount Then
    List1.ListIndex = List1.ListIndex + 1
End If

Автор: eldar22 15.8.2009, 22:31
Naghual,Не чё то все равно эта же ошибка
Ну например я этот код
Код

If List1.ListIndex < List1.ListCount Then
    List1.ListIndex = List1.ListIndex + 1
End If

вставил в событие кнопки 
Ну все равно как дошёл до последней записи  появилась эта же ошибка

Автор: Akina 15.8.2009, 23:15
Цитата(eldar22 @  15.8.2009,  23:31 Найти цитируемый пост)
все равно как дошёл до последней записи  появилась эта же ошибка

Потому что так и не понял сути. Пробуешь, а не думаешь.

Вместо это if достаточно написАть
Код

List1.ListIndex = (List1.ListIndex + 1) Mod List1.ListCount

Автор: Naghual 16.8.2009, 02:42
Цитата(eldar22 @  15.8.2009,  22:31 Найти цитируемый пост)
Ну все равно как дошёл до последней записи  появилась эта же ошибка

Почитай (на том-же МСДНе) какие отличия в индексах у ListCount и у ListIndex.

Автор: eldar22 16.8.2009, 11:16
Akina, Забавно получается  smile 
Получается что программа по списку кругом бегает бесконечно с верху вниз до конца доходит и опять с самого начало пошёл

Автор: neic 17.8.2009, 09:23
eldar22
Попробуй так и будет всё гуд:
Код

Do While List1.ListIndex < List1.ListCount - 1
    List1.ListIndex = List1.ListIndex + 1
Loop
 

Автор: Naghual 17.8.2009, 09:34
А зачем там цикл?  Что-б само бегало?

Автор: neic 18.8.2009, 01:31
Naghual, угу. Ну можно конечно Do While и IFом заменить...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)