Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ; Пример конфига, сохранить в ini и открыть программу
- ; [Set]
- ; Max=5
- ; 1="U, В 220 Напряжение"
- ; 2="I, А 4.3 Ток"
- ; 3="P, Вт $1 * $2 P=U*I, Мощность"
- ; 4="R, Ом $1 / $2 2 R=U/I, Сопротивление"
- $sPath = @ScriptDir & '\Sample.ini'
- If Not FileExists($sPath) Then
- $sText= _
- '[Set]' & @CRLF & _
- 'Max=5' & @CRLF & _
- '1="U, В 220 Напряжение"' & @CRLF & _
- '2="I, А 4.3 Ток"' & @CRLF & _
- '3="P, Вт $1 * $2 P=U*I, Мощность"' & @CRLF & _
- '4="R, Ом $1 / $2 2 R=U/I, Сопротивление"'
- $hFile = FileOpen($sPath, 2)
- FileWrite($hFile, $sText)
- FileClose($hFile)
- EndIf
- #include <EditConstants.au3>
- #include <GUIConstantsEx.au3>
- #include <WindowsConstants.au3>
- #include <GuiListView.au3>
- #include <GuiImageList.au3>
- #include <Array.au3>
- Opt("GUIOnEventMode", 1)
- $sep = @Tab
- ; Opt('GUIDataSeparatorChar', $sep)
- $TrAuWh = 0
- Global $aElement[2], $hActive, $iInput
- Global $iListView, $hListView, $dummy1, $dummy2
- Global $iMaxILV = 0
- $hGUI = GUICreate('Формула', 530, 390, -1, -1, $WS_OVERLAPPEDWINDOW + $WS_POPUP)
- GUISetOnEvent(-3, '_Exit')
- $iInput = GUICtrlCreateInput("", 0, 0, 0, 0)
- GUICtrlSetState(-1, $GUI_HIDE)
- $iListView = GUICtrlCreateListView('№|Имя параметра|Число|Формула|Округление|Описание', 5, 5, 520, 330, BitOR($GUI_SS_DEFAULT_LISTVIEW, $LVS_REPORT, $LVS_SHOWSELALWAYS))
- GUICtrlSetResizing(-1, 2 + 4 + 32 + 64)
- $hListView = GUICtrlGetHandle(-1)
- ; _GUICtrlListView_SetExtendedListViewStyle ($hListView, $LVS_EX_CHECKBOXES)
- ; _GUICtrlListView_SetExtendedListViewStyle ($hListView, $LVS_EX_GRIDLINES)
- ; Загружает изображения
- $hImage = _GUIImageList_Create()
- _GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($hListView, 0x00FF00, 16, 16)) ; Зелёный
- _GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($hListView, 0xFFFF00, 16, 16)) ; Жёлтый
- _GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($hListView, 0xFF0000, 16, 16)) ; Красный
- _GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($hListView, 0xDDDD00, 16, 16)) ; Тёмно жёлтый
- _GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($hListView, 0xF0F0F0, 16, 16)) ; Белый
- _GUICtrlListView_SetImageList($hListView, $hImage, 1)
- ; _GUICtrlListView_SetSelectedColumn($iListView, 1)
- ; Local $odd = False
- ; For $i = 1 To $iMaxILV
- ; $item1 = ''
- ; $item2 = '0'
- ; $cItem = GUICtrlCreateListViewItem($i & '|' & $item1 & '|' & $item2, $iListView) ; создаём пункты
- ; If $odd Then GUICtrlSetBkColor($cItem, 0xEEEEEE)
- ; $odd = Not $odd
- ; Next
- ; For $i = 1 To $iMaxILV
- ; $item1 = 'Парам ' & $i
- ; $item2 = '0'
- ; _GUICtrlListView_AddItem($hListView, $i, 0)
- ; _GUICtrlListView_AddSubItem($hListView, $i-1, $item1, 1)
- ; _GUICtrlListView_AddSubItem($hListView, $i-1, $item2, 2)
- ; Next
- ; Выравнивание колонок по ширине
- If $TrAuWh Then
- For $i = 0 To 5
- _GUICtrlListView_SetColumnWidth($hListView, $i, -2) ;$LVSCW_AUTOSIZE_USEHEADER
- Next
- EndIf
- GUICtrlCreateButton('Новый', 210, 340, 70, 28)
- GUICtrlSetOnEvent(-1, "_New")
- GUICtrlSetResizing(-1, 4 + 64 + 256 + 512)
- GUICtrlCreateButton('Открыть', 290, 340, 70, 28)
- GUICtrlSetOnEvent(-1, "_Open")
- GUICtrlSetResizing(-1, 4 + 64 + 256 + 512)
- GUICtrlCreateButton('Сохранить', 370, 340, 70, 28)
- GUICtrlSetOnEvent(-1, "_Save")
- GUICtrlSetResizing(-1, 4 + 64 + 256 + 512)
- GUICtrlCreateButton('Вычислить', 450, 340, 70, 28)
- GUICtrlSetOnEvent(-1, "_Execute")
- GUICtrlSetResizing(-1, 4 + 64 + 256 + 512)
- $iStatusBar = GUICtrlCreateLabel('Строка состояния', 3, 390 - 20, 520, 17)
- GUICtrlSetResizing(-1, 2 + 4 + 64 + 512)
- ; Устанавливает выравнивание по правому краю для колонок 0 и 2 (числа)
- Local $tColumn = DllStructCreate("uint Mask;int Fmt;int CX;ptr Text;int TextMax;int SubItem;int Image;int Order;int cxMin;int cxDefault;int cxIdeal")
- DllStructSetData($tColumn, "Mask", 0x01)
- DllStructSetData($tColumn, "Fmt", 1) ; Left = 0; Right = 1; Center = 2
- Local $pColumn = DllStructGetPtr($tColumn)
- GUICtrlSendMsg($iListView, 0x1000 + 96, 0, $pColumn)
- GUICtrlSendMsg($iListView, 0x1000 + 96, 2, $pColumn)
- $dummy1 = GUICtrlCreateDummy()
- GUICtrlSetOnEvent(-1, "_Exit")
- $dummy2 = GUICtrlCreateDummy()
- GUICtrlSetOnEvent(-1, "_SaveChange")
- Global $AccelKeys[2][2] = [["{ESC}", $dummy1],["{ENTER}", $dummy2]]
- GUISetAccelerators($AccelKeys)
- GUISetState()
- GUIRegisterMsg($WM_NOTIFY, "_WM_NOTIFY")
- GUIRegisterMsg($WM_COMMAND, "WM_COMMAND") ; для скрытия поля ввода при потере фокуса.
- While 1
- Sleep(100000)
- WEnd
- Func _New()
- ; Local $sErr
- Do
- $sNum = InputBox("Новый", "Укажите число ячеек", "10", " M4", -1, -1)
- If @error Then Return
- $ifValidate = True
- If Not StringIsDigit($sNum) Or $sNum == '0' Then $ifValidate = False
- Until $ifValidate
- $sNum = Number($sNum)
- ; If Not _GUICtrlListView_GetItemCount($hListView) And MsgBox(4, 'Сообщение', 'На основе текущего?') = 7 Then
- If _GUICtrlListView_GetItemCount($hListView) And MsgBox(4, 'Сообщение', 'На основе текущего?') = 6 Then
- ; MsgBox(0, 'Отладчик - ' & @ScriptLineNumber & '-' & @error & '-' & @extended, '$sNum = ' & $sNum & @CRLF & _
- ; '$iMaxILV = ' & $iMaxILV)
- If $sNum > $iMaxILV Then
- For $i = $iMaxILV + 1 To $sNum
- ; Добавляет пункты
- _GUICtrlListView_AddItem($hListView, $i, 4) ; Добавляем индексы
- Next
- ; Выравнивание колонок по ширине
- If $TrAuWh Then
- For $i = 0 To 5
- _GUICtrlListView_SetColumnWidth($hListView, $i, -1) ;$LVSCW_AUTOSIZE
- _GUICtrlListView_SetColumnWidth($hListView, $i, -2) ;$LVSCW_AUTOSIZE_USEHEADER
- Next
- EndIf
- ElseIf $sNum < $iMaxILV Then
- For $i = $iMaxILV - 1 To $sNum Step -1 ; Удаляем лишние пункты
- _GUICtrlListView_DeleteItem($hListView, $i)
- Next
- EndIf
- $iMaxILV = $sNum
- Else
- _GUICtrlListView_DeleteAllItems($hListView) ; Удаляем все пункты
- $iMaxILV = $sNum
- For $i = 1 To $iMaxILV
- ; Добавляет пункты
- _GUICtrlListView_AddItem($hListView, $i, 4)
- Next
- ; Выравнивание колонок по ширине
- If $TrAuWh Then
- For $i = 0 To 5
- _GUICtrlListView_SetColumnWidth($hListView, $i, -1) ;$LVSCW_AUTOSIZE
- _GUICtrlListView_SetColumnWidth($hListView, $i, -2) ;$LVSCW_AUTOSIZE_USEHEADER
- Next
- EndIf
- EndIf
- EndFunc ;==>_New
- Func _Open()
- $Ini = FileOpenDialog('Открыть', @ScriptDir, 'Формула (*.ini)', '', '', $hGUI)
- If @error Then Return
- If StringRight($Ini, 4) <> '.ini' Then $Ini &= '.ini'
- $aSection = IniReadSectionNames($Ini)
- If @error Then Return
- ; If $aSection > 1 Then
- $asKeyVal = IniReadSection($Ini, "Set")
- Local $iMax = Number(IniRead($Ini, "Set", "Max", "0"))
- If $iMax < 1 Then Return
- Local $aMain[$iMax + 1][6] = [[$iMax]] ; Создаём вставочный массив
- For $i = 1 To $asKeyVal[0][0]
- If StringIsDigit($asKeyVal[$i][0]) Then
- $idx = Number($asKeyVal[$i][0])
- If $idx <= $iMax Then
- $asKeyVal[$i][1]=StringRegExpReplace($asKeyVal[$i][1], '^"(.+)"$', '\1') ; Так как используется пробел в качестве разделителя
- $aValue = StringSplit($asKeyVal[$i][1], $sep)
- If $aValue[0] > 6 Then $aValue[0] = 6
- For $j = 1 To $aValue[0]
- $aMain[$idx][$j] = $aValue[$j]
- Next
- EndIf
- EndIf
- Next
- _ImportArr($aMain)
- $iMaxILV = $iMax
- EndFunc ;==>_Open
- Func _Save()
- $Ini = FileSaveDialog('Сохранить как ...', @ScriptDir, 'Формула (*.ini)', 24, 'conf', $hGUI)
- If @error Then Return
- If StringRight($Ini, 4) <> '.ini' Then $Ini &= '.ini'
- ; Получить пункты ListView
- Local $aMain = _GUICtrlListView_GetAllTextArray($hListView)
- If @error Then Return MsgBox(0, 'Сообщение', 'Ошибка')
- ; GUICtrlSetData($iStatusBar, '...')
- $sep4 = $sep & $sep & $sep & $sep
- $str = 'Max=' & $aMain[0][0]
- For $i = 1 To $aMain[0][0]
- $tmp = $aMain[$i][1] & $sep & $aMain[$i][2] & $sep & $aMain[$i][3] & $sep & $aMain[$i][4] & $sep & $aMain[$i][5]
- If $tmp <> $sep4 Then $str &= @LF & $i & '="' & $tmp & '"'
- Next
- $str = StringRegExpReplace($str, '\t+(?=\v)', '') ; Удаляем завершающие разделители
- IniWriteSection($Ini, "Set", $str)
- EndFunc ;==>_Save
- Func _ImportArr($aMain)
- Local $ind
- _GUICtrlListView_DeleteAllItems($hListView) ; Удаляем все пункты
- For $i = 1 To $aMain[0][0]
- $ind = 4
- If $aMain[$i][2] Then $ind = 0
- If $aMain[$i][3] Then $ind = 1
- ; Добавляет пункты
- _GUICtrlListView_AddItem($hListView, $i, $ind) ; Добавляем индексы
- For $j = 1 To 5
- If $aMain[$i][$j] Then _GUICtrlListView_AddSubItem($hListView, $i - 1, $aMain[$i][$j], $j) ; Добавляем подпункты если они чему то равны
- Next
- Next
- ; Выравнивание колонок по ширине
- If $TrAuWh Then
- For $i = 0 To 5
- _GUICtrlListView_SetColumnWidth($hListView, $i, -1) ;$LVSCW_AUTOSIZE
- _GUICtrlListView_SetColumnWidth($hListView, $i, -2) ;$LVSCW_AUTOSIZE_USEHEADER
- Next
- EndIf
- EndFunc ;==>_ImportArr
- Func _Execute()
- Local $aMain = _GUICtrlListView_GetAllTextArray($hListView)
- If @error Then Return MsgBox(0, 'Сообщение', 'Ошибка')
- Local $timer = TimerInit()
- GUICtrlSetData($iStatusBar, '...')
- Local $aMainCopy = $aMain ; Делаем копию, чтобы сравнить изменение в колонке 3 (число, результат)
- ; _ArrayDisplay($aMain)
- $iMaxILV = $aMain[0][0]
- For $i = 1 To $aMain[0][0]
- ; If $aMain[$i][3] And StringInStr($aMain[$i][3], '$') Then
- If $aMain[$i][3] Then ; Если формула существует, то вычисляем её
- ; If StringInStr($aMain[$i][3], '$') Then ; Если формула содержит переменные, то заменяем их на реальные числа.
- $aVar = StringRegExp($aMain[$i][3], '\$([1-9]\d*)', 3) ; Извлекаем массив переменных, чтобы проверить их существование
- If Not @error Then
- ; _ArrayDisplay($aVar)
- _VarValidate($aVar)
- If @error Then
- _GUICtrlListView_SetItemImage($hListView, $i - 1, 2) ; Если валидация массива не успешна, то пока вылет, а потом может вывод красной метки
- GUICtrlSetData($iStatusBar, 'Ошибка превышения индекса ячейки')
- Return
- EndIf
- For $j = 0 To UBound($aVar) - 1
- $aMain[$i][3] = StringReplace($aMain[$i][3], '$' & $aVar[$j], $aMain[$aVar[$j]][2])
- ; MsgBox(0, 'Сообщение', '$' & $aVar[$j] & @LF & $aMain[$aVar[$j]][2])
- Next
- EndIf
- $aMain[$i][2] = _Execute2($aMain[$i][3])
- If @error Then
- _GUICtrlListView_SetItemImage($hListView, $i - 1, 2) ; Если вычисление не успешно, то пока вылет, а потом может вывод красной метки
- GUICtrlSetData($iStatusBar, 'Ошибка вычисления')
- Return
- EndIf
- _GUICtrlListView_SetItemImage($hListView, $i - 1, 3)
- If $aMain[$i][4] Then $aMain[$i][2] = Round($aMain[$i][2], $aMain[$i][4])
- EndIf
- Next
- ; _ArrayDisplay($aMain)
- For $i = 1 To $aMain[0][0]
- If Not ($aMainCopy[$i][2] == $aMain[$i][2]) Then
- ; MsgBox(0, VarGetType(Number($aMainCopy[$i][2])) & '-' & VarGetType($aMain[$i][2]), $aMainCopy[$i][2] & @LF & $aMain[$i][2])
- _GUICtrlListView_SetItemText($hListView, $i - 1, $aMain[$i][2], 2)
- _GUICtrlListView_SetItemImage($hListView, $i - 1, 1)
- EndIf
- Next
- GUICtrlSetData($iStatusBar, 'Готово! (за ' & Round(TimerDiff($timer) / 1000, 2) & ' сек)')
- EndFunc ;==>_Execute
- Func _Execute2($i) ; Отдельная функция чтобы уменьшить конфликт с локальными переменными и самим выражением
- $i = Execute($i)
- If @error Then Return SetError(1)
- Return $i
- EndFunc ;==>_Execute2
- Func _VarValidate(ByRef $aVar)
- _ArrayRemoveDuplicates($aVar) ; Удаляем дубликаты
- For $i = 0 To UBound($aVar) - 1 ; Если число больше чем максимальное количество ячеек
- $aVar[$i] = Number($aVar[$i])
- If $aVar[$i] > $iMaxILV Then Return SetError(1, 0, 0)
- Next
- _ArraySort($aVar, 1) ; Сортировка, чтобы начинать замену с больших чисел
- EndFunc ;==>_VarValidate
- Func _ArrayRemoveDuplicates(Const ByRef $aArray)
- If Not IsArray($aArray) Then Return SetError(1, 0, 0)
- Local $oDict = ObjCreate("Scripting.Dictionary")
- $oDict.CompareMode = 0 ; учитывать регистр букв, бинарное сравнение
- For $i In $aArray
- $oDict.Item($i) ; shown by wraithdu
- Next
- Return $oDict.Keys()
- EndFunc ;==>_ArrayRemoveDuplicates
- ; Выводит элемент Input на передний план
- Func _GUICtrlListView_EditItem($hWnd, $iIndex, $iSubItem)
- ;funkey 19.02.2010
- If $iIndex < 0 Then Return
- Local $aPos, $aRect, $iSum = 0
- Local $x, $y, $w, $h
- For $i = 0 To $iSubItem - 1
- $iSum += _GUICtrlListView_GetColumnWidth($hWnd, $i)
- Next
- $aRect = _GUICtrlListView_GetItemRect($hWnd, $iIndex)
- $aPos = ControlGetPos($hGUI, "", $hWnd)
- $x = $iSum + $aPos[0] + $aRect[0]
- $y = $aPos[1] + $aRect[1]
- $w = _GUICtrlListView_GetColumnWidth($hWnd, $iSubItem)
- $h = $aRect[3] - $aRect[1]
- GUICtrlSetPos($iInput, $x - 1, $y + 1, $w + 1, $h + 1)
- GUICtrlSetData($iInput, _GUICtrlListView_GetItemText($hWnd, $iIndex, $iSubItem))
- GUICtrlSetState($iInput, $GUI_SHOW)
- GUICtrlSetState($iInput, $GUI_FOCUS)
- $aElement[0] = $iIndex
- $aElement[1] = $iSubItem
- EndFunc ;==>_GUICtrlListView_EditItem
- ; Сохранить изменения редактирования пункта
- Func _SaveChange()
- Local $sText = GUICtrlRead($iInput)
- If StringInStr($sText, @CR) Or StringInStr($sText, @LF) Then
- If StringLeft($sText, 1) <> '"' And StringInStr(StringMid($sText, 2, StringLen($sText) - 2), '"') Then $sText = StringReplace($sText, '"', "'")
- $sText = '"' & StringReplace($sText, '"', '') & '"'
- EndIf
- _GUICtrlListView_BeginUpdate($hActive)
- _GUICtrlListView_SetItemText($hActive, $aElement[0], $sText, $aElement[1])
- GUICtrlSetState($iInput, $GUI_HIDE)
- If $TrAuWh Then _GUICtrlListView_SetColumnWidth($hListView, $aElement[1], -2) ;$LVSCW_AUTOSIZE_USEHEADER
- _GUICtrlListView_EndUpdate($hActive)
- Return $sText ; возвращаем текст, если требуется его использовать после применения
- EndFunc ;==>_SaveChange
- Func _WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
- Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR
- $tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
- $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
- $iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
- $iCode = DllStructGetData($tNMHDR, "Code")
- Switch $hWndFrom
- Case $hListView
- Switch $iCode
- Case $NM_DBLCLK ; двойной клик - редактируем пункт ListView
- Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
- _GUICtrlListView_EditItem($hListView, DllStructGetData($tInfo, "Index"), DllStructGetData($tInfo, "SubItem"))
- $hActive = $hListView
- EndSwitch
- EndSwitch
- Return $GUI_RUNDEFMSG
- EndFunc ;==>_WM_NOTIFY
- Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
- #forceref $hWnd, $iMsg
- Local $iIDFrom, $iCode
- $iIDFrom = BitAND($iwParam, 0xFFFF) ; младшее слово
- $iCode = BitShift($iwParam, 16) ; старшее слово
- Switch $iIDFrom
- Case $iInput
- Switch $iCode
- Case $EN_KILLFOCUS
- GUICtrlSetState($iInput, $GUI_HIDE)
- EndSwitch
- EndSwitch
- Return $GUI_RUNDEFMSG
- EndFunc ;==>WM_COMMAND
- Func _Exit()
- Exit
- EndFunc ;==>_Exit
- #cs
- $h_ListView - Дескриптор ListView
- $i_ItemStart - Пункт от которого начинать считывание
- $i_ItemEnd - Пункт в котором закончить считывание (-1 означает до конца)
- $s_RowString = '0|2|5' - формат колонок если тредуется задать конкретные
- $s_Separator - разделитель по умолчанию для $s_RowString
- Последняя модификации:
- 1. Только для внутреннего окна, принадлежащего текущему процессу.
- 2. Только в юникоде. Не переключайте ListView в ANSI
- #ce
- Func _GUICtrlListView_GetAllTextArray($h_ListView, $i_ItemStart = 0, $i_ItemEnd = -1, $s_RowString = -1, $s_Separator = '|')
- Local $i_CountItem, $i_CountRow, $a_Row, $t_Buffer, $t_Item, $p_Item, $a_Return[1], $i_Item, $t_MemMap, _
- $p_Memory, $p_Text
- If Not IsHWnd($h_ListView) Then Return SetError(-1, 0, 0)
- $i_CountRow = _GUICtrlListView_GetColumnCount($h_ListView)
- $i_CountItem = _GUICtrlListView_GetItemCount($h_ListView)
- If $i_CountItem = 0 Then Return SetError(-1, 0, 0)
- If $i_ItemEnd = -1 Or $i_ItemEnd = Default Then
- $i_ItemEnd = $i_CountItem - 1
- Else
- $i_ItemEnd = Abs(Int($i_ItemEnd))
- If $i_ItemEnd > $i_CountItem - 1 Then $i_ItemEnd = $i_CountItem - 1
- EndIf
- $i_ItemStart = Abs(Int($i_ItemStart))
- If $i_ItemStart > $i_CountItem - 1 Then $i_ItemStart = 0
- If $i_ItemEnd <= $i_ItemStart Then $i_ItemEnd = $i_ItemStart + 1
- If $s_RowString = -1 Or $s_RowString = Default Then
- $s_RowString = ''
- For $i = 0 To $i_CountRow - 1
- $s_RowString &= $i & $s_Separator
- Next
- EndIf
- $s_RowString = StringRegExpReplace($s_RowString, '^[^\d]+|[^\d]+$', '')
- $s_RowString = StringRegExpReplace($s_RowString, '[^\d]', $s_Separator)
- $s_RowString = StringRegExpReplace($s_RowString, '\Q' & $s_Separator & '\E{2,}', $s_Separator)
- $a_Row = StringSplit($s_RowString, $s_Separator)
- For $i = 1 To $a_Row[0]
- $a_Row[$i] = Int($a_Row[$i])
- If $a_Row[$i] > $i_CountRow - 1 Then Return SetError(-1, 0, 0)
- Next
- $a_Row = _ArrayUnique($a_Row, 1, 1)
- _ArraySort($a_Row, 0, 1)
- $t_Buffer = DllStructCreate('wchar Text[4096]')
- $t_Item = DllStructCreate($tagLVITEM)
- $p_Item = DllStructGetPtr($t_Item)
- DllStructSetData($t_Item, 'TextMax', 4096)
- DllStructSetData($t_Item, 'Text', DllStructGetPtr($t_Buffer))
- ReDim $a_Return[$i_CountItem + 1][$a_Row[0]]
- For $i = $i_ItemStart To $i_ItemEnd
- $a_Return[0][0] += 1
- For $j = 1 To $a_Row[0]
- DllStructSetData($t_Item, 'SubItem', $a_Row[$j])
- _SendMessage($h_ListView, $LVM_GETITEMTEXTW, $i, $p_Item, 0, 'wparam', 'ptr')
- $a_Return[$a_Return[0][0]][$j - 1] = DllStructGetData($t_Buffer, 'Text')
- Next
- Next
- ReDim $a_Return[$a_Return[0][0] + 1][$a_Row[0]]
- Return $a_Return
- EndFunc ;==>_GUICtrlListView_GetAllTextArray
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement