Eine kleine Methode die eine Farbe zwischen Rot und Grün zurückgibt, wenn man ihr eine Prozentzahl (sprich eine Zahl zwischen 0 und 100) übergibt.
(achja..in der Funktion kein Error checking..)
Tja..5 Uhr morgens und mir ist langweilig kann ich dazu nur sagen
[autoit]#include <GUIConstants.au3>
[/autoit][autoit][/autoit][autoit]Global $batterieFarbe = 0x555555, $sliderpos = 0
$gui = GUICreate("Batterie",130,200,-1,-1,BitOr($WS_CAPTION, $WS_POPUP, $WS_SYSMENU))
$input = GUICtrlCreateInput("80",50,200-24-10,30,24,BitOr($ES_NUMBER,$ES_RIGHT))
$label = GUICtrlCreateLabel("",120,50,50,100)
GUICtrlSetBkColor($label,$batterieFarbe)
GUICtrlCreateLabel("",19,49,52,102)
GUICtrlSetBkColor(-1,$batterieFarbe)
GUICtrlCreateLabel("",40,45,10,5)
GUICtrlSetBkColor(-1,$batterieFarbe)
$slider = GUICtrlCreateSlider(80,40,30,120,BitOr($TBS_VERT,$TBS_LEFT,$TBS_AUTOTICKS))
GUICtrlSetLimit(-1,100,0)
GUICtrlSetData(-1,20)
_GetColorByValue(80)
GUISetState(@SW_SHOW)
While 1
;Damit es nicht über 100% werden..
if StringLen(GUICtrlRead($input)) > 2 Then
if Number(GUICtrlRead($input)) > 100 Then
GUICtrlSetData($input,100)
SoundPlay(@WindowsDir & "\media\Windows XP-Ping.wav",0) ;Fehlergeräusch
EndIf
EndIf
If GUICtrlRead($slider) <> $sliderpos Then
$sliderpos = GUICtrlRead($slider)
GUICtrlDelete($label)
$label = GUICtrlCreateLabel("",20,50+100-(100-GUICtrlRead($slider)),50,(100-GUICtrlRead($slider)))
GUICtrlSetBkColor($label,_GetColorByValue(100-GUICtrlRead($slider)))
GUICtrlSetData($input,100-GUICtrlRead($slider))
EndIf
If GUIGetMsg() = $GUI_EVENT_CLOSE Then Exit
WEnd
Func _GetColorByValue($iProzent)
Local $hColor = 0
if ($iProzent > 50) Then
$hColor = "0x" & Hex((100-$iProzent)*5.1,2) & "FF00"
Else
$hColor = "0xFF" & Hex(($iProzent)*5.1,2) & "00"
endIf
return $hColor
EndFunc
So aber nun geh ich doch lieber schlafen bevor ich noch mit nützlichen Scripten komme