Что нового

Возможно ли совместить 2 операции PixelSearch в одну?

teges

Знающий
Сообщения
18
Репутация
16
Простой пример:
Код:
PixelSearch(0, 0, 1, 1, 0xFFFFFF)  ; Прошу обратить внимание, 
 If Not @error Then $status = 2
PixelSearch(2, 2, 4, 4, 0xFFFF00)  ; что цвета и координаты разные
 If Not @error Then $status = 2


Возможно ли совместить 2 операции PixelSearch в одну более простым способом? Это поможет упростить вложенный цикл If...EndIf:
Код:
PixelSearch(0, 0, 1, 1, 0xFFFFFF) ; Второй вариант, если 1 не верен не рассматривается
 If Not @error Then 
  PixelSearch(2, 2, 4, 4, 0xFFFF00)
   If Not @error Then $status = 2
 EndIf


Ничего кроме дополнительной функции пока в голову не пришло :scratch:
Код:
;~ Альтернатива PixelSearch но возвращает булев тип
Func _PSRH_RE($x1, $y1, $x2, $y2, $color)
	PixelSearch($x1, $y1, $x2, $y2, $color)
	If Not @error Then
	 Return True
	Else
	 Return False
	EndIf
EndFunc   ;==>_PSRH_RE

Выглядит так:
Код:
If _PSRH_RE(0, 0, 1, 1, 0xFFFFFF) And _PSRH_RE(2, 2, 4, 4, 0xFFFF00) Then Exit
 

Belfigor

Модератор
Локальный модератор
Сообщения
3 596
Репутация
938
можно функции сократить вот так вот:
Код:
Func _PSRH_RE($x1, $y1, $x2, $y2, $color)
    PixelSearch($x1, $y1, $x2, $y2, $color)
    If Not @error Then Return True
    Return False
EndFunc   ;==>_PSRH_RE
 

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 319
Belfigor [?]
можно функции сократить вот так вот:
Так еще короче :smile:
Код:
Func _PSRH_RE($x1, $y1, $x2, $y2, $color)
    PixelSearch($x1, $y1, $x2, $y2, $color)
    Return @error = 0
EndFunc   ;==>_PSRH_RE
 
Верх