Hallo
und wieder ein Problem
Ich hab folgendes Skript geschrieben:
(hab mal alles Unter Spoiler unterteilt damits übersichtlicher wird)
Das Skript:
Spoiler anzeigen
#include
#include
AutoItSetOption("MouseCoordMode",0)
[/autoit] [autoit][/autoit] [autoit]GUICreate("Background", 807, 400,-1,-1,$WS_POPUP)
$playbut = GUICtrlCreatePic("black/playbutton.jpg", 0, 356,50,44)
$stopbut = GUICtrlCreatePic("black/stopbutton.jpg", 50, 356,50,44)
$autobut = GUICtrlCreatePic("black/openbutton.jpg", 100, 356,50,44)
$endbut = GUICtrlCreatePic("black/endbutton.jpg", 757, 356,50,44)
GUICtrlCreatePic("black/langerbalken.jpg", 150, 356,607,44)
GUISetState(@SW_SHOW)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]While 1
[/autoit] [autoit][/autoit] [autoit]$mousepos = MouseGetPos()
$check = GUIGetMsg()
Select
[/autoit] [autoit][/autoit] [autoit]Case $check = $endbut
Exitloop
;:::inside-bereich:::
Case _Mouse_bereich_(0,50,356,400)
GUICtrlSetImage(3,"blue/playbuttonblau.jpg") ;playbut
case _Mouse_bereich_(50,100,356,400)
GUICtrlSetImage(4,"blue/stopbuttonblau.jpg") ;stopbut
case _Mouse_bereich_(100,150,356,400)
GUICtrlSetImage(5,"blue/openbuttonblau.jpg") ;Autoresümeebut
case _Mouse_bereich_(757,807,356,400)
GUICtrlSetImage(6,"blue/endbuttonblau.jpg") ;Exitbut
;:::outside-bereich:::
case _Mouse_bereich_aus_(0,50,356,400)
GUICtrlSetImage(3,"black/playbutton.jpg") ;playbut
case _Mouse_bereich_aus_(50,100,356,400)
GUICtrlSetImage(4,"black/stopbutton.jpg") ;stopbut
case _Mouse_bereich_aus_(100,150,356,400)
GUICtrlSetImage(5,"black/openbutton.jpg") ;Autoresümeebut
case _Mouse_bereich_aus_(757,807,356,400)
GUICtrlSetImage(6,"black/endbutton.jpg") ;Exitbut
EndSelect
Wend
;:::Maus-in-bereich-Funktion:::
Func _Mouse_bereich_($X, $X2, $Y, $Y2)
local $Mousepos = MouseGetPos()
return ($Mousepos[0] > $X And $Mousepos[0] < $X2) and ($Mousepos[1] > $Y And $Mousepos[1] < $Y2)
EndFunc
;:::Maus-aus-bereich-Funktion:::
Func _Mouse_bereich_aus_($X, $X2, $Y, $Y2)
local $Mousepos = MouseGetPos()
return ($Mousepos[0] < $X or $Mousepos[0] > $X2) or ($Mousepos[1] < $Y or $Mousepos[1] > $Y2)
EndFunc
Who is Who
Spoiler anzeigen
Ein "Who is Who" damit man weis was welches "button" ist ![]()
[Blockierte Grafik: http://img836.imageshack.us/img836/9556/whoiswho.png]
Was das Skript bisher machen soll:
Spoiler anzeigen
Was das Skript machen soll: Es so bisher nur immer ein bild wechsel wen die maus in einen bestimmte region kommt, z.b. in die region wo das "Playbutton" ist. Sobald die Maus die Region wieder verlässt, soll das bild wieder das sein welches es vor dem Wechsel war. Noch zwei Bild wie das gemeint ist.
So sieht es Standartmäßig aus:
[Blockierte Grafik: http://img836.imageshack.us/img836/7328/leistestandard.png]
und so wen man mit der Maus über das Playbutton fährt:
[Blockierte Grafik: http://img842.imageshack.us/img842/8332/leistepic1.png]
Das Problem:
Spoiler anzeigen
Das Problem: Fahr ich mit der Maus raus aus der Region (also von "Playbutton" aus Rechts), Bleibt das "Playbutton" blau, obwohl ich eingtl. bereits raus aus dem Gebiet bin das für das Playbutton zugeordnet wurde. Fahr ich vom "Playbutton" aus in irgendeine andere Richtung (außer rechts) , funktioniert es wie es sollte, also das "Playbutton" wird wieder grau. Fahr ich aber mit der Maus weiter rechts über das Gebiet des "Pausebuttons" und lande dan im Gebiet des "Openbutton", wird das "Playbutton" aufeinmal wieder Grau. Selbe passiert mit den "Openbutton" wen ich links vom "Openbutton" aus, wieder über das "Stopbutton" , in das Gebiet des "Playbuttons" fahre. Das "Openbutton" wird grau. Fahr ich aber mit der Maus in irgendeine andere Richtung (also hoch,runter,rechts) passiert nix, also das "Openbutton" bleibt blau. Selbes gilt für das "Stopbutton" und das "Exitbutton". Ich hab aber die Größe der Regionen ausgerechnet, und die passen zu den Größen der Bilder, also ist es unwahrscheinlich das meine Region zu groß sind und deswegen das Skript so reagiert !
Ein Bild zur Veranschaulichung:
[Blockierte Grafik: http://img806.imageshack.us/img806/5507/failleiste.png]
eigtl. sollte jetzt das "Stopbutton" wieder grau werde, tut es aber nicht
.
Genug der Worte, probierst am besten selber aus, dann wird schnell verständlich wo das Problem liegt. Skript samt Bilder gibts im Anhang. ![]()
e: Hab vorhin die Funktion
[autoit]GUIGetCursorInfo
[/autoit]
gefunden. Damit sollte es wohl besser klappen als für jedes Bild eine extra Region zu machen. Wär aber trotzdem nett wen man mir mit den Problem oben helfen könnte, schließlich bin ich ja hie rum zu lernen ![]()
Danke an alle die sich das hier zumindest mal durchlesen xD