Всем доброго времени суток
Сделал "мигалку". Но обновляется вся форма целиком. Как обновить только Combo?
Сделал "мигалку". Но обновляется вся форма целиком. Как обновить только Combo?
Код:
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Date.au3>
Global $Flag=1, $Date=_NowCalc()
$Form1 = GUICreate("Form1", 278, 159, -1, -1)
$Label1 = GUICtrlCreateLabel("Label1", 32, 40, 36, 17)
$Combo1 = GUICtrlCreateCombo("", 80, 36, 145, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
GUICtrlSetData(-1, "В работе|Списан")
$Button1 = GUICtrlCreateButton("Button1", 96, 112, 75, 25)
GUISetState(@SW_SHOW)
While 1
Color()
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
Case $Combo1
If GUICtrlRead($Combo1)<>'Списан' Then
GUICtrlSetBkColor($Combo1, 0xFFFFFF)
_WinAPI_RedrawWindow($Form1)
EndIf
EndSwitch
WEnd
Func Color()
If GUICtrlRead($Combo1)='Списан' Then
;~ ConsoleWrite(GUICtrlRead($Combo1)&@CRLF)
If _DateDiff('s',$Date,_NowCalc())<1 Then Return
If $Flag=1 Then
GUICtrlSetBkColor($Combo1, 0x00FFFF)
$Flag=2
$Date=_NowCalc()
_WinAPI_RedrawWindow($Form1)
Return
EndIf
IF $Flag=2 Then
GUICtrlSetBkColor($Combo1, 0xFFFF00)
$Flag=1
$Date=_NowCalc()
_WinAPI_RedrawWindow($Form1)
Return
EndIf
EndIf
EndFunc