Свойство List

Массив символьных строк, используемый для доступа к элементам списка ComboBox или ListBox.

Применение:
ComboBox, ListBox.

Синтаксис:

Control.List(nRow [, nCol])[ = cChar]

Установки:
nRow
Задает строку элемента, который следует получить; указывается порядковый номер, под которым элемент отображается в списке. Например, значение nRow = 3 задает третью строку, показанную в списке.
nCol
Задает столбец элемента, который следует получить; используется порядок, действующий на экране. Например, nCol = 2 задает второй столбец, показанный в списке. Если значение nCol не задано, свойство List по умолчанию извлекает первый столбец. Аргумент nCol следует задавать только для элементов управления ComboBox и ListBox, содержащих более одного столбца.

Комментарии:
Недоступно на этапе разработки, доступно для чтения-записи на этапе выполнения.
Свойство List действует совместно со свойством ListCount; задавая в качестве номеров числа от 1 до ListCount, можно получить все элементы списка.
В свойстве List нельзя использовать функции обработки массивов. Впрочем, если вы установили для свойства RowSourceType значение 5 (массив) и задали в свойстве RowSource массив элементов, предназначенных для помещения в список, вы можете применять функции обработки массива к массиву, заданному в свойстве RowSource.
Замечание. Когда значение свойства RowSourceType равно 0 или 1, для добавления элементов в список ComboBox или ListBox можно использовать метод AddItem. Чтобы удалять элементы, используйте метод RemoveItem. Чтобы организовать элементы в алфавитном порядке, нужно, прежде чем добавлять в список новые элементы, установить свойство Sorted данного элемента управления равным значению "истина" (.T.).

Пример:

* В следующем примере свойство ListCount используется для организации
* цикла по всем элементам, заданным свойством List элемента
* управления ComboBox или ListBox.
* В этом примере создается элемент управления ListBox. Источником
* элементов, фигурирующих в качестве элементов списка ListBox, служит
* массив; он задается с помощью свойств RowSourceType и RowSource. 
* Свойство MultiSelect элемента управления ListBox устанавливается
* равным "истине" (.T.), что позволяет выбирать элементы в этом списке
* группами. Внутри цикла FOR ... ENDFOR используется свойство ListCount
* для отображения элемента (элементов), выбранного в ListBox. Свойство
* Selected используется для определения выбранных элементов, а
* свойство List  для возвращения этих элементов.

CLEAR

DIMENSION gaMyListArray(10)
FOR gnCount = 1 to 10  && Fill the array with letters
	STORE REPLICATE(CHR(gnCount+64),6) TO gaMyListArray(gnCount)
ENDFOR

frmMyForm = CREATEOBJECT('Form')  && Create a Form
frmMyForm.Closable = .f.  && Disable the Control menu box 

frmMyForm.Move(150,10)  && Move the form

frmMyForm.AddObject('cmbCommand1','cmdMyCmdBtn')  && Add "Quit" Command button
frmMyForm.AddObject('lstListBox1','lstMyListBox')  && Add ListBox control

frmMyForm.lstListBox1.RowSourceType = 5  && Specifies an array
frmMyForm.lstListBox1.RowSource = 'gaMyListArray' && Array containing listbox items

frmMyForm.cmbCommand1.Visible =.T.  && "Quit" Command button visible
frmMyForm.lstListBox1.Visible =.T.  && "List Box visible

frmMyForm.SHOW  && Display the form
READ EVENTS  && Start event processing

DEFINE CLASS cmdMyCmdBtn AS CommandButton  && Create Command button
	Caption = '\<Quit'  && Caption on the Command button
	Cancel = .T.  && Default Cancel Command button (Esc)
	Left = 125  && Command button column
	Top = 210  && Command button row
	Height = 25  && Command button height

	PROCEDURE Click
		CLEAR EVENTS  && Stop event processing, close Form
		CLEAR  && Clear main Visual FoxPro window
ENDDEFINE

DEFINE CLASS lstMyListBox AS ListBox  && Create ListBox control
	Left = 10  && List Box column
	Top = 10  && List Box row
	MultiSelect = .T.  && Allow selecting more than 1 item

PROCEDURE Click
	ACTIVATE SCREEN
	CLEAR
	? "Selected items:"
	? "---------------"
	FOR nCnt = 1 TO ThisForm.lstListBox1.ListCount
		IF ThisForm.lstListBox1.Selected(nCnt)  && Is item selected?
			? SPACE(5) + ThisForm.lstListBox1.List(nCnt) && Show item
		ENDIF
	ENDFOR

ENDDEFINE

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 16.02.2003