Цитата:
Цитата Centrinar
надо что бы GIF картинка крутилась 2 сек »
|
Тут можно только удалять Gif'ки...
Код:
GUICreate("Embedded Web control Test", 640, 580)
$nGif1 = _GUICtrlCreateGif(@SystemDir & "\oobe\html\mouse\images\clicking.gif", 5, 5, -1, -1)
$nGif2 = _GUICtrlCreateGif(@WindowsDir & "\pchealth\helpctr\System\images\progbar.gif", 450, 5)
$nGif3 = _GUICtrlCreateGif(@SystemDir & "\oobe\images\dialup.gif", 5, 300)
GUISetState()
$iTimer = TimerInit()
While GUIGetMsg() <> -3
If TimerDiff($iTimer) >= 2000 Then
GUICtrlDelete($nGif1)
GUICtrlDelete($nGif2)
;GUICtrlDelete($nGif3)
EndIf
WEnd
А нет, можно и останавливать:
Код:
GUICreate("Embedded Web control Test", 640, 580)
$aGif1 = _GUICtrlCreateGif(@SystemDir & "\oobe\html\mouse\images\clicking.gif", 5, 5, -1, -1)
$aGif2 = _GUICtrlCreateGif(@WindowsDir & "\pchealth\helpctr\System\images\progbar.gif", 450, 5)
$aGif3 = _GUICtrlCreateGif(@SystemDir & "\oobe\images\dialup.gif", 5, 300)
GUISetState()
$iTimer = TimerInit()
While GUIGetMsg() <> -3
If TimerDiff($iTimer) >= 2000 Then
$aGif1[0].Stop
$aGif2[0].Stop
;$aGif3[0].Stop
EndIf
WEnd
Func _GUICtrlCreateGif($sGifFile, $iLeft, $iTop, $iWidth=-1, $iHeight=-1)
Local $iSizes, $oIE, $nGUIActiveX, $iTimer
If ($iWidth = -1 Or $iHeight = -1) And FileGetSize($sGifFile) > 9 Then
$iSizes = FileRead($sGifFile, 10)
If $iWidth = -1 Then $iWidth = Asc(StringMid($iSizes, 8, 1)) * 256 + Asc(StringMid($iSizes, 7, 1))
If $iHeight = -1 Then $iHeight = Asc(StringMid($iSizes, 10, 1)) * 256 + Asc(StringMid($iSizes, 9, 1))
EndIf
$oIE = ObjCreate("Shell.Explorer.2")
$nGUIActiveX = GUICtrlCreateObj($oIE, $iLeft, $iTop, $iWidth, $iHeight)
$oIE.Navigate("about:blank")
While $oIE.Busy
Sleep(1)
WEnd
$oIE.Document.Body.Background = $sGifFile
$oIE.Document.Body.Scroll = "No"
Local $aRet[2] = [$oIE, $nGUIActiveX]
Return $aRet
EndFunc
Если сильно постараться, то можно задать параметр таймаут для функции «_GUICtrlCreateGif», чтобы не нужно было проверять это в главном цикле, функция сама будет останавливать Gif'ку по истечению таймаута.
|