Команды управления списком

ListBoxAddItem("ИмяОбъекта","Параметры")
Пояснение

Добавляет элемент(ы) в список.

Параметрами могут являться:
  • обычный текст (например, бла-бла-бла)
  • строковая переменная (например, text$)
  • массив строк (например, text[n]$)
  • строка с разделителем (например, str$='item1#item2#item3#')
  • текстовый файл (например, C:\Documents\text.txt)
  • <List> - содержимое внутреннего списка MMB
  • список воспроизведения MMB (*.m3l) или Winamp (*.pls,*.m3u)
  • RESET - очистка списка
Начиная с версии MMB 4.9.5, параметр RANDOMIZE больше не используется. Для случайной сортировки элементов списка используйте команду ListBoxSortItems.
Примеры

Этот небольшой пример открывает окно выбора файла (с заданной маской), и после этого загружает в список выбранный пользователем плейлист:

OpenFile("Списки воспроизведения (*.m3l;*.m3u;*.pls)|*.m3l;*.m3u;*.pls|Все файлы|*.*||","*.m3l;*.m3u;*.pls")
ListBoxAddItem("SongList","RESET")
ListBoxAddItem("SongList","OpenFile$")

Загрузка элементов, представленных в виде строки, содержащей разделитель:

string$='item 4#item 5#item 6#'
ListBoxAddItem("SongList","string$,#")

Дополнительные примеры смотрите в файле listbox_tut.mbd.
Дополнительная информация

Если вы хотите добавить в список путь к файлу, то используйте параметр STRING перед строкой, содержащей путь:

filename$='STRING:'+ExtractName(Path$)+ExtractExt(Path$)
ListBoxAddItem("SongList","filename$")

ListBoxDeleteItem("ИмяОбъекта","НомерЭлемента")
Пояснение

Удаляет указанный элемент из списка. Чтобы удалить все элементы, используйте в качестве параметра -1.

Примечание: порядковый номер первого элемента списка всегда равен 1.
Примеры

Следующая команда удаляет из списка элемент с порядковым номером 5:

ListBoxDeleteItem("SongList","5")

Вот более сложный пример использования команды ListBoxDeleteItem. С помощью этого кода вы сможете удалить выделенные элементы списка при нажатии клавиши DELETE:
  • Создайте новый объект-скрипт и укажите в его свойствах запуск по нажатию DELETE.
  • Поместите в него следующий код:
ListBoxGetSelectedItems("SongList","Items$,NumItems$,#,Count")
For i=Count To 1
numitem$=GetArrayItem(NumItems$,#,i)
numitem=VAL(numitem$)
ListBoxDeleteItem("SongList","numitem")
Next i

ListBoxSortItems("ИмяОбъекта","Параметры")
Пояснение

Команда для сортировки элементов списка. Возможные параметры:

NAME - сортировка элементов по имени
TIME - сортировка по времени
VALUE - сортировка по целочисленному значению
REVERSE - обратный порядок списка
RANDOMIZE - случайная сортировка
Пример

Этот простой код сортирует элементы списка в соответствии с их именами

ListBoxSortItems("SongList","NAME")

Например, элементы:

12 test
11 test
1 test
32 test
9 test

...отсортированные по имени (NAME):

1 test
11 test
12 test
32 test
9 test

...и отсортированные по целочисленному значению (VALUE):

1 test
9 test
11 test
12 test
32 test

ListBoxSelectItem("ИмяОбъекта","НомерЭлемента")
Пояснение
Выделяет указанный элемент в списке. Чтобы выделить все элементы, используйте в качестве параметра -1.
Пример

Пример выделения пятого элемента в списке:

ListBoxSelectItem("SongList","5")

ListBoxDeselectItem("ИмяОбъекта","НомерЭлемента")
Пояснение
Снимает выделение с указанного элемента списка. Чтобы снять выделение со всех элементов, используйте в качестве параметра -1.
Пример

Пример снятия выделения со всех элементов списка:

ListBoxDeselectItem("SongList","-1")

ListBoxMoveItem("ИмяОбъекта","НомерЭлемента")
Пояснение
Перемещает выделенный элемент в соответствии с номером позиции, указанным в качестве параметра.
Примеры

Следующий пример перемещает выделенный элемент на одну позицию вверх:

ListBoxGetSelectedItems("SongList","Items$,NumItems$,#,Count")
For j=1 To Count

SelItem$=GetArrayItem(Items$,#,j)
SelNum$=GetArrayItem(NumItems$,#,j)
SelNum=VAL(SelNum$)
Next j
If (SelNum>1) Then
ListBoxMoveItem("SongList","SelNum-1")
End

Следующий пример перемещает выделенный элемент на одну позицию вниз:

ListBoxGetItems("SongList","AllItems$,AllItemsN$,#,AllItems")
ListBoxGetSelectedItems("SongList","Items$,NumItems$,#,Count")
For j=1 To Count
SelItem$=GetArrayItem(Items$,#,j)
SelNum$=GetArrayItem(NumItems$,#,j)
SelNum=VAL(SelNum$)
Next j
If (SelNum<AllItems) Then
ListBoxMoveItem("SongList","SelNum+1")
End
Дополнительная информация

Ограничение: с помощью этой команды нельзя переместить несколько выделенных элементов!

Для дополнительной информации смотрите файл move_up_down.mbd.

ListBoxGetItems("ИмяОбъекта","Параметры")
Пояснение
Получает все элементы из списка. Первый параметр должен быть строковой переменной, которая будет содержать элементы списка, разделенные делимитером (символом-разделителем). Второй параметр также должен быть строковой переменной, которая будет содержать порядковые номера элементов списка, разделенные делимитером. Третий параметр определяет разделитель. Четвертый параметр является числовой переменной, содержащей число всех элементов списка.
Пример

Следующий пример возвращает все элементы списка:

ListBoxGetItems("SongList","Items$,NumItems$,#,Count")
For i=1 To Count
Item$=GetArrayItem(Items$,#,i)
Message("Элемент списка:","Item$")
Next i
Дополнительная информация

Команда ListBoxGetItems может не только получать элементы списка, она также может связывать внутренний список MMB с элементами обычного списка. Просто используйте вместо обычных параметров команды константу <List>.

Для того, чтобы поместить содержимое списка во внутренний список MMB <List>, используйте следующий код:

ListBoxGetItems("SongList","<List>")

ListBoxGetSelectedItems("ИмяОбъекта","Параметры")
Пояснение
Получает все выделенные элементы списка. Первый параметр должен быть строковой переменной, которая будет содержать элементы списка, разделенные делимитером (символом-разделителем). Второй параметр также должен быть строковой переменной, которая будет содержать порядковые номера элементов списка, разделенные делимитером. Третий параметр определяет разделитель. Четвертый параметр является числовой переменной, содержащей число выделенных элементов списка.
Пример

Следующий пример возвращает все выделенные элементы списка:

ListBoxGetSelectedItems("SongList","Items$,NumItems$,#,Count")
If (Count<>0)
For i=1 To Count
Item$=GetArrayItem(Items$,#,i)
Message("Выделен элемент:","Item$")
Next i
End
Дополнительная информация
Для дополнительной информации откройте файл listbox_on_master_page.mbd или listbox_fileextensions.mbd, или любой другой пример из папки Samples, использующий эту команду.

ListBoxParam("ИмяОбъекта","Параметры")
Пояснение

Изменяет во время работы приложения некоторые параметры списка, заданные в редакторе.

DRAG&DROP=ON/OFF - включает/выключает перетаскивание на список
NUMBERS=ON/OFF - отображает/скрывает номера элементов
TIMES=ON/OFF - включает/выключает отображение длительности файла (только для аудио и видеофайлов)
BACKGROUND=R,G,B - задает цвет фона списка
TEXT=R,G,B - задает цвет текста
IDTAGS=ON/OFF - включает/выключает поиск тегов в аудиофайлах
Примеры

Нижеприведенные примеры покажут вам, как изменить некоторые параметры списка:

ListBoxParam("SongList","DRAG&DROP=ON")

ListBoxParam("SongList","NUMBERS=OFF")

ListBoxParam("SongList","TIMES=ON")

ListBoxParam("SongList","BACKGROUND=128,128,128")

ListBoxParam("SongList","TEXT=128,0,0")

ListBoxParam("SongList","IDTAGS=OFF")

MMB Программирование без границ :: dgilmour, перевод на русский язык, 2006 :: Все права защищены :: www.mmbscript.ru