Что нового

Как узнать id картинки по нажатию левой кнопкой мыши на ней

mmsgeorge

Новичок
Сообщения
96
Репутация
0
Здравствуйте! Я создал 10 картинок , каждой было присвоена переменная, получился определенный массив. Далее, я должен перетащить картинку зажатием левой кнопки мыши.
Вопрос: Как узнать какая картинка была нажата из множества?
п.с добавляю часть кода, так как он очень большой. с кучей функций.

Код:
;присвоение картинки переменной 
;тут определенный цикл
$fotka[$jj][$ii]=GUICtrlCreatePic ($gaDropFiles[$i],10+$x, 10+$y, 120,120,-1,$WS_EX_TOPMOST)
 GUICtrlSetOnEvent ( $fotka[$jj][$ii], "peremeshenie_kartinki" )
next
;то есть каждой переменной присвоилась картинка и также прикрепилась функция если нажать на картинку

Func peremeshenie_kartinki()
 Local $regim_koordinat_mouse = Opt("MouseCoordMode", 2)
 Local $informaciya_okna = GUIGetCursorInfo($GL_dobavit_novost)
 Local $informaciya_objekta, $informaciya_mouse, $novaya_x_pos, $novaya_y_pos

If IsArray($informaciya_okna) And $informaciya_okna[2] = 1 And $informaciya_okna[4] = $fotka Then
$informaciya_okna = GUIGetCursorInfo($GL_dobavit_novost)
$informaciya_objekta = ControlGetPos($GL_dobavit_novost, "", $fotka)
$informaciya_mouse = MouseGetPos()
$velx= $informaciya_mouse[0]-$informaciya_objekta[0]
$vely= $informaciya_mouse[1]-$informaciya_objekta[1]
        While IsArray($informaciya_okna) And $informaciya_okna[2] = 1
            $informaciya_okna = GUIGetCursorInfo($GL_dobavit_novost)
            $informaciya_objekta = ControlGetPos($GL_dobavit_novost, "", $fotka)
            $informaciya_mouse = MouseGetPos()

            $novaya_x_pos = $informaciya_mouse[0]-($informaciya_objekta[2]/2)
            $novaya_y_pos = $informaciya_mouse[1]-($informaciya_objekta[3]/2)

            GUICtrlSetPos($fotka, $novaya_x_pos, $novaya_y_pos)
        WEnd
    EndIf
    Opt("MouseCoordMode", $regim_koordinat_mouse)
EndFunc

я не знаю что поставить вместо $fotka, у меня 10 фотографий, как определить какая именно нажата?
 
Автор
M

mmsgeorge

Новичок
Сообщения
96
Репутация
0
есть конечно простой вариант, сделать, определение координат мышки в определенной области, то есть если мышка находится в зоне 1-ой картинки, то определенной переменной присвоить что выбрана 1-ая картинка, если в зоне 2-ой картинки , переменной присвоить, что выбрана 2-ая картинка + добавить условие, что нажата левая кнопка мыши...
НО, а если бы у меня было 150 картинок или клиентская область менялась, то есть, картинки шли в 2 строки, но при увеличении области они перестраивались в одну строку, то координаты бы менялись(хотя если, определять положение фотографий и уже из этого можно находить их зону), то не удобно было бы, для каждой делать отдельный код, может есть варианты попроще?
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
mmsgeorge

Предупреждение За нарушение правил форума (пункт В.11):
Любые отрывки AutoIt кода необходимо заключать в тег [autoit]
autoit.gif
(подробнее), а обычный код соответственно в тег [code]
code.gif
(подробнее). Также большие выдержки текста помещайте под тег [spoiler]
spoiler.gif
(подробнее), там где это поддерживается естественно. Как в случае с названием темы, также короткое и эргономичное сообщение привлекает больше внимания, и шансы на получение конкретного ответа увеличиваются.


С уважением, ваш Глобальный модератор.
 
Автор
M

mmsgeorge

Новичок
Сообщения
96
Репутация
0
Решено, можно использовать @GUI_CtrlId
 
Верх