Hallo Zusammen,
Vorab, ich weiß es gibt schon einige Threats zum Thema Blinkender Label...
Aber dennoch habe ich eine Frage bzw. kleines Problem:
; #FUNCTION# ====================================================================================================================
; Name...........: _GuiCtrlCreateLabel_Blink
; Description ...: Label blinking
; Syntax.........: _GuiCtrlCreateLabel_Blink($sText, $iPosX, $iPosY, $iBlinkRate, $iFontSize = 8.5, $sFont = 'Microsoft Sans Serif', $sColor)
; Parameters ....: $sText - Text
; $iPosX- X Position
; $iPosY- Y Position
; $iBlinkRate- Blinkrate (Timer)
; $iFontSize = 8.5 - Fontsize
; $sFont = 'Microsoft Sans Serif' - Fonttype
; $sColor - Color Value
; $sBlinkColor - Highlight Color Value
; ===============================================================================================================================
Func _GuiCtrlCreateLabel_Blink($sText, $iPosX, $iPosY, $iBlinkRate, $iFontSize=8.5, $sFont='Microsoft Sans Serif', $sColor=0x000000, $sBlinkColor=0xff0000)
Local $hLabel
Local $iTimer = TimerInit()
Local $on = True
GUISetFont($iFontSize, 400, 0, $sFont)
GUICtrlSetColor($hLabel, $sColor)
$hLabel = GUICtrlCreateLabel($sText, $iPosX, $iPosY)
Local $hGui = DllCall("user32.dll", "hwnd", "GetParent", "hwnd", GUICtrlGetHandle(-1))
$hGui = $hGui[0]
Local $aPos
For $i = 1 To UBound($sText) -1
$aPos = ControlGetPos($hGui, "", GUICtrlGetHandle(-1))
$hLabel[$i] = GUICtrlCreateLabel($sText[$i], $iPosX + $aPos[0] + $aPos[2] - 15 + Ceiling($iFontSize / 3), $iPosY)
Next
GUICtrlSetFont($hLabel, Default, Default, 0) ;
[/autoit][autoit][/autoit][autoit][/autoit][autoit]; ************** hier fehlt mir die passende Schleife........
If $on Then
GUICtrlSetColor($hLabel,$sBlinkColor)
Else
GUICtrlSetColor($hLabel,$sColor)
EndIf
$on = not $on
;***************************************************************
Return $hLabel
[/autoit][autoit][/autoit][autoit]EndFunc
[/autoit]Wie kann ich nun in dieser Funktion eine Schleife setzten, die mit dem Timer $iBlinkRate interagiert?
Ich habe schon versucht mittels TimerInit() und TimeDiff das Ganze irgendwie zu lösen aber komme nicht auf ein sinnvolles Ergebnis.
Ich weiß, dass man mit AdlibRegister(<function>, time) eine Funktion aufrufen kann, in der die Zeilen 36 -41 eingebunden werden könnten, jedoch kann ich mit AdlibRegister keine Funktion mit Parameter wie $hLabel etc. übergeben...
Grüße
Tim.
PS der Code ist nur ein kleiner Auszug, daher kann das eine oder andere in diesem Fragment sinnlos erscheinen