Как достать данные из ListBox'а?

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Как достать данные из ListBox'а?

Сообщение qivi » 20.11.2010 23:36:51

Как получить выделенную строку ЛистБокса для записи её в переменную типа стринг...
Не свойство Каптион ни свойство Текст не помогают.
Аватара пользователя
qivi
энтузиаст
 
Сообщения: 703
Зарегистрирован: 19.01.2009 13:45:54
Откуда: Россия

Re: Как достать данные из ListBox'а?

Сообщение Nik » 20.11.2010 23:48:40

Эм... Вроде обычный способ работает:

Код: Выделить всё

if ListBox1.Selected[i] then str:=ListBox.Items[i]

Аватара пользователя
Nik
энтузиаст
 
Сообщения: 573
Зарегистрирован: 04.02.2006 00:08:09
Откуда: Киров

Re: Как достать данные из ListBox'а?

Сообщение qivi » 21.11.2010 01:02:10

Nik спасибо.

Я ещё читаю мол основной клас итемс и всё черз него, а лазарус выдаёт ошибки на него (я про подстановку индекса не догадался), я уж попробовал и через каптион и через текст... вобщем спас.
Аватара пользователя
qivi
энтузиаст
 
Сообщения: 703
Зарегистрирован: 19.01.2009 13:45:54
Откуда: Россия

Re: Как достать данные из ListBox'а?

Сообщение eastorwest » 21.11.2010 12:02:06

"Правильнее" использовать свойство ItemIndex класса TCustomListBox:
Код: Выделить всё
property ItemIndex: Integer; [rw] // ItemIndex: Integer to indicate the currently selected item (zero origin)

Тогда поиск с циклом не потребуется:
Код: Выделить всё
ListBox1.Items[ListBox1.ItemIndex]
eastorwest
новенький
 
Сообщения: 57
Зарегистрирован: 23.07.2009 20:21:46
Откуда: Н-ск

Re: Как достать данные из ListBox'а?

Сообщение Nik » 21.11.2010 12:06:02

eastorwest писал(а):"Правильнее" использовать свойство ItemIndex класса TCustomListBox:
Код: Выделить всё
ListBox1.Items[ListBox1.ItemIndex]

Этот вариант подходит только если выделен 1 пункт. Если задействован MultiSelect, так получить выделенные пункты не получится.

PS. Вообще неплохо было добавить в дополнение к Items (TStrings) ещё и что-то типа SelectedItems (TStrings). C учётом обычного использования ListBox такая возможность была логичной.
Аватара пользователя
Nik
энтузиаст
 
Сообщения: 573
Зарегистрирован: 04.02.2006 00:08:09
Откуда: Киров


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 20

Рейтинг@Mail.ru