Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


amel27,
Цитата amel27:
в твоем примере нет динамического создания/удаления описателей »
Есть, ты видимо не ту версию скачал (нужно ту что для 3.2.10.0) - Ведь если вызывать функции постоянно это уже и будет динамический...

Например:

Код: Выделить весь код
#include <GuiConstants.au3>
#include <GUICtrlSetOnHover_UDF_For 3.2.10.0.au3>

$GUI = GUICreate("Test Script", 300, 200)

$Button = GUICtrlCreateButton("Button", 20, 40, 60, 20)

For $i = 1 To 10
    If Mod($i, 2) = 0 Then
        _GUICtrlSetOnHover($Button, "Hover_Func", "Leave_Hover_Func")
    Else
        _GUICtrlUnSetOnHover($Button)
    EndIf
Next

GUISetState(@SW_SHOW, $GUI)

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit
    EndSwitch
WEnd
В этом случае, если не проверять If $pTimerProc <> 0 в UDF, то скрипт вылетает.

Цитата amel27:
не вижу проблемы как таковой »
Я проблему то решил для себя, но по большому проблема есть, и заключается она в том, что Аутоит "вылетает" когда от него это не ожидается.

Цитата amel27:
Могу предложить свой вариант системы UDF, причем без создания глобальных данных »
Хм, у тебя получается сделать без глобальных переменных? А как быть с LAST_HOVERED_ELEMENT? т.е нужно чтобы функция не вызывалась всё время, а только при навидении в первый раз.

Цитата amel27:
для штатного GUI не нужен никакой таймер - достаточно поставить обработчик сообщения WM_MOUSEMOVE »
Имхо, этого не будет достаточно если нужно чтобы обработка OnHover была и при не активном GUI, а также в последних версиях UDF добавлена возможность OnClick ($sPrimaryDownFuncName, $sPrimaryUpFuncName), там явно MouseMove не поможет.

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 13:38, 03-11-2008 | #1058