Что нового

Найти все совпадения в массиве

musicstashall

Знающий
Сообщения
322
Репутация
7
Имею двухмерный массив. Мне нужно выполнить в нем поиск и найти все строки, содержащие $hWnd. Совпадений может быть и два, и три, и больше. Не хватает ума, как это сделать правильно. Помогите, плиз.
Код:
Local $lParam[100][9]
Func WM_PAINT($hWnd)
    Local $iArray = _ArrayFindAll($lParam, $hWnd)
    If Not @error Then
        For $n=0 to 2
            $i = $iArray[$n]
            $hGraphics = $lParam[$i][1]
            $x = $lParam[$i][2]
            $y = $lParam[$i][3]
            $hBrush1 = $lParam[$i][4]
            $hBrush2 = $lParam[$i][5]
            $hBrush3 = $lParam[$i][6]
            $hBrush4 = $lParam[$i][7]
            Graphic($hGraphics, $x, $y, $hBrush1, $hBrush2, $hBrush3, $hBrush4)
        Next
    EndIf
    Return $GUI_RUNDEFMSG
EndFunc   ;==>MY_WM_PAINT
 
Автор
M

musicstashall

Знающий
Сообщения
322
Репутация
7
Пока решил так. Может быть кто-то улучшит (упростит) способ:

Код:
Func WM_PAINT($hWnd)
    Local $iArray = _ArrayFindAll($lParam, $hWnd)
	If Not @error Then
		For $n=0 to UBound($iArray) - 1
			Local $i = $iArray[$n]
			$hGraphics = $lParam[$i][1]
			$x = $lParam[$i][2]
			$y = $lParam[$i][3]
			$hBrush1 = $lParam[$i][4]
			$hBrush2 = $lParam[$i][5]
			$hBrush3 = $lParam[$i][6]
			$hBrush4 = $lParam[$i][7]
			Graphic($hGraphics, $x, $y, $hBrush1, $hBrush2, $hBrush3, $hBrush4)
		Next
	EndIf
    Return $GUI_RUNDEFMSG
EndFunc   ;==>MY_WM_PAINT
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
OffTopic:
musicstashall
Займитесь лучше чтением справки. ;)
 

joiner

Модератор
Локальный модератор
Сообщения
3,557
Репутация
628
OffTopic:
к чтению справки прибавить умеренность в сложности задач. писать более простые коды, пока без графики. Графика это пшик, главное чтобы остальной функционал работал.
 
Верх