Функция _GUICtrlListView_AddArray

         Описание функции


_GUICtrlListView_AddArray

Добавляет пункты из массива в ListView

#include <GuiListView.au3>
_GUICtrlListView_AddArray($hWnd, ByRef $aItems)

Параметры

$hWnd Дескриптор или идентификатор элемента
$aItems Массив в следующем формате:
    [0][0] - Пункт 1 Текст
    [0][1] - Пункт 1 Подпункт 1 Текст
    [0][2] - Пункт 1 Подпункт 2 Текст
    [0][n] - Пункт 1 Подпункт n Текст
    [1][0] - Пункт 2 Текст
    [1][1] - Пункт 2 Подпункт 1 Текст
    [1][2] - Пункт 2 Подпункт 2 Текст
    [1][n] - Пункт 2 Подпункт n Текст

Пример

#include <GUIConstantsEx.au3>
#include <GuiListView.au3>

$Debug_LV = False ; Проверяет ClassName передаваемый в ListView функции. Установите True и используйте дескриптор от другого элемента, чтобы увидеть как это работает

_Main()

Func _Main()
    Local $iI, $iTimer, $hListView

    ; Создаёт GUI
    GUICreate("ListView - Добавить массив пунктов", 400, 300)
    $hListView = GUICtrlCreateListView("", 2, 2, 394, 268)
    GUISetState()

    ; Добавляет колонки
    _GUICtrlListView_AddColumn($hListView, "Пункты", 90)
    _GUICtrlListView_AddColumn($hListView, "Подпункт 1", 100)
    _GUICtrlListView_AddColumn($hListView, "Подпункт 2", 100)
    _GUICtrlListView_AddColumn($hListView, "Подпункт 3", 100)

    _GUICtrlListView_SetItemCount($hListView, 5000)

    ; Загрузка одной колонки
    Local $aItems[5000][1]
    For $iI = 0 To UBound($aItems) - 1
        $aItems[$iI][0] = "Пункт " & $iI
    Next
    $iTimer = TimerInit()
    _GUICtrlListView_AddArray($hListView, $aItems)
    MsgBox(4160, "Информация", "Время загрузки пунктов: " & Round(TimerDiff($iTimer) / 1000, 3) & " секунд")

    _GUICtrlListView_DeleteAllItems(GUICtrlGetHandle($hListView)) ; пункты добавленные с помощью функций UDF могут быть удалены используя функции UDF

    ; Загрузка четырёх колонок
    Dim $aItems[5000][4]
    For $iI = 0 To UBound($aItems) - 1
        $aItems[$iI][0] = "Пункт " & $iI
        $aItems[$iI][1] = "Пункт " & $iI & "-1"
        $aItems[$iI][2] = "Пункт " & $iI & "-2"
        $aItems[$iI][3] = "Пункт " & $iI & "-3"
    Next
    $iTimer = TimerInit()
    _GUICtrlListView_AddArray($hListView, $aItems)
    MsgBox(4160, "Информация", "Время загрузки пунктов: " & Round(TimerDiff($iTimer) / 1000, 3) & " секунд")

    ; Цикл выполняется, пока окно не будет закрыто
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUIDelete()
EndFunc   ;==>_Main