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


Автор: REVOLT 6.4.2004, 13:33
Условие:
Составить программу, в которой по номеру элемента списка, введённому в одном зи полей ввода, в другом поле ввода выводиться значение элемента (т.е. содержимое строки в листе) из списка. В случае ввода несуществуешего помера должно быть выведенно сообветствующее сообщение сообщение

Автор: cardinal 6.4.2004, 16:15
Модератор: Название темы должно отражать ее суть!

MSDN:
Returning the Number of Items with the ListCount Property
Цитата
To return the number of items in a list box, use the ListCount property. For example, the following statement uses the ListCount property to determine the number of entries in a list box:

Text1.Text = "You have " & List1.ListCount & " _
entries listed"

Accessing List Items with the List Property
Цитата
The List property provides access to all items in the list. This property contains an array in which each item in the list is an element of the array. Each item is represented in string form. To refer to an item in the list, use this syntax:

box.List(index)

The box argument is a reference to a list box, and index is the position of the item. The top item has an index of 0, the next has an index of 1, and so on. For example, the following statement displays the third item (index = 2) in a list in a text box:

Text1.Text = List1.List(2)

То есть (если с ошибкой):
Код
Private Sub Command1_Click()
Dim i As Integer
i = 2
If i > List1.ListCount Then MsgBox "error"
Text1.Text = List1.List(i)
End Sub

Если что не понятно - спрашивай!

Автор: REVOLT 6.4.2004, 17:11
Чё-то не очень понял! Если не затруднит, можно подробнее.

Автор: cardinal 6.4.2004, 17:20
В какой строке, что не понял?

Автор: REV0LT 6.4.2004, 19:27
Если честно, то вообще не понял. Я может быть не так задачу задал. Вот сейчас по русски. Ести один ListBox и два текстовых поля. В листе есть три записи. Вопрос мой таков. Надо ввести в Text1 номер строки (не индекс, а именно номер) и чтобы в Text2 появилась та строчка номер которой ввели. Помоги пожалуйста чайнику, плиз!

Автор: cardinal 6.4.2004, 19:35
Может я что-то не понимаю, но
index + 1 = номер строки
Немного математики и ты получишь
index = номер строки - 1 smile.gif

Соответственно вот:
Код
Private Sub Command1_Click()
Text2.Text = List1.List(Text1.Text - 1)
End Sub

Private Sub Form_Load()
List1.AddItem "первая строка"
List1.AddItem "вторая строка"
List1.AddItem "третья строка"
End Sub

Автор: Гость_REVOLT 7.4.2004, 14:01
Cardinal, спасибо тебе огромное, очень выручил!

Автор: REVOLT 7.4.2004, 18:25
У меня ещё одна проблема! Как сделать так чтобы при вводе неверного числа, т.е если такой строчки нет выводилась ошибка?

Автор: cardinal 7.4.2004, 18:36
Самый простой вариант:
Код
Private Sub Command1_Click()
On Error GoTo ShitHappened
' тут происходит ошибка
ShitHappened:
    ' тут можешь обработать ошибку
End Sub

Подробней читай тут:
http://www.firststeps.ru/vba/excel/r.php?12
тут:
http://www.handheld-basic.com/documentation/text/page_966.html
и тут:
http://forum.vingrad.ru/index.php?showtopic=20660

Автор: REVOLT 7.4.2004, 19:14
Ууу, я вас ещё не достал? У меня ещё вопрос. Как сделать так чтобы при вводе текста в текстбокс строчки из листбокса во втором текстовом окне появлялся номер строки?

Автор: cardinal 7.4.2004, 19:38
Цитата
Ууу, я вас ещё не достал?

Нет, просто дал тебе побольше информации smile.gif

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

Автор: REVOLT 7.4.2004, 19:48
Есть ЛистБокс, и 2 текстовых поля, в первое текстовое поле нужно ввести данные листБокса например "Кошка", а во втором текстовом поле должен появиться его номер из листа. И ещё вопросик MSDN русская бывает?

Автор: cardinal 7.4.2004, 20:11
Цитата
в первое текстовое поле нужно ввести данные листБокса например "Кошка"

Встаем в TextBox и вводим "к", "о", "ш", "к", "а" - "кошка" smile.gif
Цитата
а во втором текстовом поле должен появиться его номер из листа

Делаешь фунцию, которая пробегается по элементам списка и возвращает 0 если ничего не найдет или номер элемента в списке. Если ноль, то пишешь в TextBox2 "not found", если нет - пишешь туда номер, который она возвратила.
Цитата
И ещё вопросик MSDN русская бывает?

Помоему нет, у меня английский. Учи английский, тебе пол интернета (и тот же MSDN) не доступно, если ты не знаешь английский smile.gif

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