Зависание скрипта при _Hover_Func
Вложений: 1
Код:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
#include "GUICtrlOnHover.au3"
#Region Main form
$hMain_GUI = GUICreate("Главное окно", 300, 200)
$Label = GUICtrlCreateLabel("Настройки", 10, 170, 70, 20)
_GUICtrl_OnHoverRegister($Label, "_Hover_Func", "_Hover_Func")
$nExit_Btn = GUICtrlCreateButton("Выход", 90, 170, 70, 20)
GUISetState(@SW_SHOW, $hMain_GUI)
#EndRegion Main form
#Region Settings form
$hStngs_GUI = GUICreate("Настройки", 400, 200)
$nStngs_Ok_Btn = GUICtrlCreateButton("ОК", 10, 170, 80, 25)
$nStngs_Close_Btn = GUICtrlCreateButton("Закрыть", 310, 170, 80, 25)
#EndRegion Settings form
While 1
$aMsg = GUIGetMsg(1) ;Расширенная обработка событий
Switch $aMsg[0]
Case $GUI_EVENT_CLOSE, $nExit_Btn, $nStngs_Close_Btn
Switch $aMsg[1]
Case $hMain_GUI ;Событие поступило от главного окна - завершаем работу скрипта
Exit
Case $hStngs_GUI ;Событие поступило от окна настроек - закрываем его
GUISetState(@SW_HIDE, $hStngs_GUI)
EndSwitch
Case $Label
GUISetState(@SW_SHOW, $hStngs_GUI)
EndSwitch
WEnd
Func _Hover_Func($iCtrlID, $iParam)
Local $sConsole_Data = "Hovered"
Local $sButton_Text = "Hover Button"
Local $iLabel_Color = 0x00000FF
Local $iLabel_FontAttrib = 4
Local $iCheckBox_State = $GUI_CHECKED
Local $sEdit_Data = "New Edit Data"
If $iParam = 2 Then ;Indicates On *Leave* Hover process
$sConsole_Data = "NOT Hovered"
$sButton_Text = "Button"
$iLabel_Color = 0x000000
$iLabel_FontAttrib = 0
$iCheckBox_State = $GUI_UNCHECKED
$sEdit_Data = "Edit Data"
EndIf
Printf("Control " & $iCtrlID & " [Data: " & GUICtrlRead($iCtrlID, 1) & "] Is Now " & $sConsole_Data)
Switch $iCtrlID
Case $Button
If GUICtrlRead($iCtrlID) <> $sButton_Text Then GUICtrlSetData($iCtrlID, $sButton_Text)
Case $Label
GUICtrlSetColor($iCtrlID, $iLabel_Color)
GUICtrlSetFont($iCtrlID, Default, Default, $iLabel_FontAttrib)
Case $CheckBox
GUICtrlSetState($iCtrlID, $iCheckBox_State)
Case $Edit
If GUICtrlRead($iCtrlID) <> $sEdit_Data Then GUICtrlSetData($iCtrlID, $sEdit_Data)
EndSwitch
EndFunc
Func Printf($Str, $Line=@ScriptLineNumber)
ConsoleWrite("!===========================================================" & @LF & _
"+======================================================" & @LF & _
"--> Script Line (" & $Line & "):" & @LF & "!" & @TAB & $Str & @LF & _
"+======================================================" & @LF)
EndFunc
Собственно сабж, скрипт просто виснет
|