- Offizieller Beitrag
Hi.
Hatte gerade mal en bischen Langeweile und deshalb hab ich mal en Script verbrochen .
Ist mein 1. Script was ich im Forum zu besten gebe , habt erbamen mit mir .
Das Script ist eigentlich Sinnfrei aber es ist ein gutes Beispiel wie man GUI´s ausrollen und wieder einrollen kann .
Die Geschwindigkeit des Aus- und Einrolleffekts kann man mit den Slidern Steprate und Sleep beinflussen.
Viel Spaß beim ausprobieren .
Spoiler anzeigen
#include <GuiSlider.au3>
#include <SliderConstants.au3>
#include <WindowsConstants.au3>
#include <WinAPI.au3>
#include <GUIConstantsEx.au3>
Opt("GUIResizeMode", 802); Control werden abgedockt entspricht GUICtrlSetResizing( -1,$GUI_DOCKALL) bei allen Controls
Opt("GUIOnEventMode", 1)
;~ DllCall("uxtheme.dll", "none", "SetThemeAppProperties", "int", 9)
Global Const $WS_EX_COMPOSITED = 0x2000000
Global $Steprate = 10
Global $Sleep = 5
$Form1 = GUICreate("Spielereien mit der Gui ", 350, 400, 1, 1)
GUISetOnEvent($GUI_EVENT_CLOSE, '_Ende')
$Button1 = GUICtrlCreateButton("Rollin links nach rechts ", 16, 24, 133, 33, 0)
GUICtrlSetOnEvent(-1, "_Button1")
$Button2 = GUICtrlCreateButton("Rollout rechts nach links", 16, 64, 133, 33, 0)
GUICtrlSetOnEvent(-1, "_Button2")
$Button4 = GUICtrlCreateButton("Rollin rechts nach links ", 180, 24, 133, 33, 0)
GUICtrlSetOnEvent(-1, "_Button4")
$Button5 = GUICtrlCreateButton("Rollout links nach rechts ", 180, 64, 133, 33, 0)
GUICtrlSetOnEvent(-1, "_Button5")
$Button6 = GUICtrlCreateButton("Rollin unten nach oben ", 16, 104, 133, 33, 0)
GUICtrlSetOnEvent(-1, "_Button6")
$Button7 = GUICtrlCreateButton("Rollout oben nach unten ", 16, 144, 133, 33, 0)
GUICtrlSetOnEvent(-1, "_Button7")
$Button8 = GUICtrlCreateButton("Rollin oben nach unten ", 180, 104, 133, 33, 0)
GUICtrlSetOnEvent(-1, "_Button8")
$Button9 = GUICtrlCreateButton("Rollout unten nach oben ", 180, 144, 133, 33, 0)
GUICtrlSetOnEvent(-1, "_Button9")
$Button3 = GUICtrlCreateButton("Beenden", 16, 350, 73, 33, 0)
GUICtrlSetOnEvent(-1, "_Ende")
$Button10 = GUICtrlCreateButton("Autodemo ", 180, 350, 133, 33, 0)
GUICtrlSetOnEvent(-1, "_Button10")
GUICtrlCreateGroup("Steprate festlegen :", 10, 200, 320, 60)
Global $hSlider1 = GUICtrlCreateSlider(16, 220, 300, 30, BitOR($TBS_TOOLTIPS, $TBS_AUTOTICKS, $TBS_ENABLESELRANGE))
_GUICtrlSlider_SetRange($hSlider1, 1, 20)
GUICtrlSetData(-1, $Steprate)
GUICtrlCreateGroup("Sleep festlegen :", 10, 260, 320, 60)
Global $hSlider2 = GUICtrlCreateSlider(16, 280, 300, 30, BitOR($TBS_TOOLTIPS, $TBS_AUTOTICKS, $TBS_ENABLESELRANGE))
GUICtrlSetData(-1, $Sleep)
_GUICtrlSlider_SetRange($hSlider2, 0, 100)
GUISetState(@SW_SHOW)
$Form2 = GUICreate("Beispiel-GUI", 633, 447, 400, 400, BitOR($WS_POPUP, $WS_SIZEBOX), $WS_EX_COMPOSITED)
$Input2 = GUICtrlCreateInput("Input1", 120, 32, 385, 21)
$Buttonx = GUICtrlCreateButton("Bla", 16, 24, 73, 33, 0)
$Buttony = GUICtrlCreateButton("Blub ", 16, 64, 73, 33, 0)
GUICtrlSetState(-1, $GUI_DISABLE)
$Buttonz = GUICtrlCreateButton("BlaBla ", 16, 104, 73, 33, 0)
$List1 = GUICtrlCreateList("", 528, 40, 81, 71)
$Progress1 = GUICtrlCreateProgress(64, 320, 521, 49)
$TreeView1 = GUICtrlCreateTreeView(24, 168, 73, 129)
GUISetState(@SW_HIDE)
_RolloutDisable()
While 1
Sleep(50)
WEnd
Func _Button1()
_RollinDisable()
GUISwitch($Form1)
GUISetState(@SW_SHOW, $Form2)
For $i = 1 To Round(633 / $Steprate)
If $i * $Steprate < 633 Then
_GuiResize($Form2, 400, 400, $i * $Steprate, 447)
Else
_GuiResize($Form2, 400, 400, 633, 447)
EndIf
Sleep($Sleep)
Next
GUISwitch($Form1)
EndFunc ;==>_Button1
Func _Button2()
_RolloutDisable()
GUICtrlSetState($Button2, $GUI_DISABLE)
GUICtrlSetState($Button1, $GUI_Enable)
For $i = Round(633 / $Steprate) To 0 Step -1
If $i * $Steprate < 633 Then
_GuiResize($Form2, 400, 400, $i * $Steprate, 447)
;~ Else
;~ _GuiResize($Form2, 400, 400, 633, 447)
EndIf
Next
GUISetState(@SW_HIDE, $Form2)
GUISwitch($Form1)
EndFunc ;==>_Button2
Func _Ende()
Exit
EndFunc ;==>_Button3
Func _Button4()
_RollinDisable()
GUISwitch($Form1)
GUISetState(@SW_SHOW, $Form2)
For $i = 0 To Round(633 / $Steprate)
If $i * $Steprate < 663 Then
_GuiResize($Form2, 1033 - $i * $Steprate, 400, 0 + $i * $Steprate, 447)
Else
_GuiResize($Form2, 400, 400, 633, 447)
EndIf
Sleep($Sleep)
Next
GUISwitch($Form1)
EndFunc ;==>_Button4
Func _Button5()
_RolloutDisable()
GUISwitch($Form1)
GUISetState(@SW_SHOW, $Form2)
For $i = 1 To Round(633 / $Steprate)
If $i * $Steprate < 663 Then
_GuiResize($Form2, 400 + $i * $Steprate, 400, 633 - $i * $Steprate, 447)
Else
_GuiResize($Form2, 400, 400, 633, 0)
EndIf
Sleep($Sleep)
Next
GUISetState(@SW_HIDE, $Form2)
GUISwitch($Form1)
EndFunc ;==>_Button5
Func _Button6()
_RollinDisable()
GUISwitch($Form1)
GUISetState(@SW_SHOW, $Form2)
For $i = 0 To Round(477 / $Steprate)
If $i * $Steprate < 447 Then
_GuiResize($Form2, 400, 847 - $i * $Steprate, 633, 1 + $i * $Steprate)
Else
_GuiResize($Form2, 400, 400, 633, 447)
EndIf
Sleep($Sleep)
Next
GUISwitch($Form1)
EndFunc ;==>_Button6
Func _Button7()
_RolloutDisable()
GUISwitch($Form1)
GUISetState(@SW_SHOW, $Form2)
For $i = 1 To Round(477 / $Steprate)
If $i * $Steprate < 447 Then
_GuiResize($Form2, 400, 400 + $i * $Steprate, 633, 447 - $i * $Steprate)
Else
_GuiResize($Form2, 400, 1033, 633, 0)
EndIf
Sleep($Sleep)
Next
GUISetState(@SW_HIDE, $Form2)
GUISwitch($Form1)
EndFunc ;==>_Button7
Func _Button8()
_RollinDisable()
GUISwitch($Form1)
GUISetState(@SW_SHOW, $Form2)
For $i = 0 To Round(477 / $Steprate)
If $i * $Steprate < 447 Then
_GuiResize($Form2, 400, 400, 633, 0 + $i * $Steprate)
Else
_GuiResize($Form2, 400, 400, 633, 447)
EndIf
Sleep($Sleep)
Next
GUISwitch($Form1)
EndFunc ;==>_Button8
Func _Button9()
_RolloutDisable()
GUISwitch($Form1)
GUISetState(@SW_SHOW, $Form2)
For $i = 1 To Round(477 / $Steprate)
If $i * $Steprate < 447 Then
_GuiResize($Form2, 400, 400, 633, 447 - $i * $Steprate)
Else
_GuiResize($Form2, 400, 400, 633, 0)
EndIf
Sleep($Sleep)
Next
GUISetState(@SW_HIDE, $Form2)
GUISwitch($Form1)
EndFunc ;==>_Button9
Func _Button10()
_Button1()
Sleep(1000)
_Button2()
Sleep(1000)
_Button4()
Sleep(1000)
_Button5()
Sleep(1000)
_Button6()
Sleep(1000)
_Button7()
Sleep(1000)
_Button8()
Sleep(1000)
_Button9()
Sleep(1000)
_Button1()
Sleep(1000)
_Button5()
Sleep(1000)
_Button4()
Sleep(1000)
_Button2()
Sleep(1000)
_Button6()
Sleep(1000)
_Button9()
Sleep(1000)
_Button8()
Sleep(1000)
_Button7()
EndFunc ;==>_Button10
Func _RolloutDisable()
Global $Steprate = GUICtrlRead($hSlider1)
Global $Sleep = GUICtrlRead($hSlider2)
GUICtrlSetState($Button2, $GUI_DISABLE)
GUICtrlSetState($Button5, $GUI_DISABLE)
GUICtrlSetState($Button7, $GUI_DISABLE)
GUICtrlSetState($Button9, $GUI_DISABLE)
GUICtrlSetState($Button1, $GUI_Enable)
GUICtrlSetState($Button4, $GUI_Enable)
GUICtrlSetState($Button6, $GUI_Enable)
GUICtrlSetState($Button8, $GUI_Enable)
EndFunc ;==>_RolloutDisable
Func _RollinDisable()
Global $Steprate = GUICtrlRead($hSlider1)
Global $Sleep = GUICtrlRead($hSlider2)
GUICtrlSetState($Button1, $GUI_DISABLE)
GUICtrlSetState($Button4, $GUI_DISABLE)
GUICtrlSetState($Button6, $GUI_DISABLE)
GUICtrlSetState($Button8, $GUI_DISABLE)
GUICtrlSetState($Button2, $GUI_Enable)
GUICtrlSetState($Button5, $GUI_Enable)
GUICtrlSetState($Button7, $GUI_Enable)
GUICtrlSetState($Button9, $GUI_Enable)
EndFunc ;==>_RollinDisable
Func _GuiResize($Guiname, $Posx, $posy, $Breite, $Hoehe); Gui in der Größe ändern
_WinAPI_SetWindowPos($Guiname, "", $Posx, $posy, $Breite, $Hoehe, "")
EndFunc ;==>_GuiResize
Edit:Es kann sein das Die GUI unter Windows Vista und Windows 2008 flackert das liegt am AERO Style.
Edit 28.12.2008 hab noch 14 Effekte hinzugefügt .