Gui verstecken nachdem neue erstellt wird Problem

09/08/2010 20:55 amnesi#1
Ich habe ein problem mit dem script denn wenn ich es starte kommt eine gui mit einem hintergrundbild
und oben links ein rotes viereck mit den pfeiltasten kann man das viereck bewegen .dafür wird immer eine neue gui erstellt und ich würde gern die alte gui dann "verstecken" das krieg ich aber irgendwie nicht hin :(

hier der code:

PHP Code:
HotKeySet"{F4}" "_Exit")
HotKeySet"{left}" "Links")
HotKeySet"{right}" "Rechts")
HotKeySet"{Down}" "Unten")
HotKeySet"{UP}" "Oben")



$
0
$0
$62
$79


#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

#Region ### START Koda GUI section ### Form=
$Gui GUICreate("Versuch"633447192124 )
$Pic GUICtrlCreatePic(@ScriptDir "\music.jpg",,01024768)
guictrlsetstate(-1,$Gui_disable)
$Pic1 GUICtrlCreatePic(@ScriptDir "\Rot.jpg",$,$2, $3, $4)
guictrlsetstate(-1,$Gui_disable)

GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg 
GUIGetMsg()
    Switch 
$nMsg
        
Case $GUI_EVENT_CLOSE
            GUISetState
(@SW_HIDE)

    EndSwitch
WEnd




Func Rechts
()
    

  $
= $25




#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

#Region ### START Koda GUI section ### Form=
$Gui GUICreate("Versuch"633447192124 )
$Pic GUICtrlCreatePic(@ScriptDir "\music.jpg",,01024768)
guictrlsetstate(-1,$Gui_disable)
$Pic1 GUICtrlCreatePic(@ScriptDir "\Rot.jpg",$,$2,  $3, $4)
guictrlsetstate(-1,$Gui_disable)

GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg 
GUIGetMsg()
    Switch 
$nMsg
        
Case $GUI_EVENT_CLOSE
            GUISetState
(@SW_HIDE)

    EndSwitch
WEnd

WinSetState 
("Versuch","",@SW_HIDE)

Endfunc

Func Links
()

  $
= $25




#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

#Region ### START Koda GUI section ### Form=
$Gui GUICreate("Versuch"633447192124 )
$Pic GUICtrlCreatePic(@ScriptDir "\music.jpg",,01024768)
guictrlsetstate(-1,$Gui_disable)
$Pic1 GUICtrlCreatePic(@ScriptDir "\Rot.jpg", $,$2,  $379)
guictrlsetstate(-1,$Gui_disable)

GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg 
GUIGetMsg()
    Switch 
$nMsg
        
Case $GUI_EVENT_CLOSE
            GUISetState
(@SW_HIDE)

    EndSwitch
WEnd

WinSetState 
("Versuch","",@SW_HIDE)

Endfunc

Func Unten
()

 $
= $25




#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

#Region ### START Koda GUI section ### Form=
$Gui GUICreate("Versuch"633447192124 )
$Pic GUICtrlCreatePic(@ScriptDir "\music.jpg",,01024768)
guictrlsetstate(-1,$Gui_disable)
$Pic1 GUICtrlCreatePic(@ScriptDir "\Rot.jpg", $,$2,  6279)
guictrlsetstate(-1,$Gui_disable)

GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg 
GUIGetMsg()
    Switch 
$nMsg
        
Case $GUI_EVENT_CLOSE
            GUISetState
(@SW_HIDE)

    EndSwitch
WEnd

WinSetState 
("Versuch","",@SW_HIDE)


Endfunc

Func Oben
()

 $
= $25


#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

#Region ### START Koda GUI section ### Form=
$Gui GUICreate("Versuch"633447192124)
$Pic GUICtrlCreatePic(@ScriptDir "\music.jpg",,01024768)
guictrlsetstate(-1,$Gui_disable)
$Pic1 GUICtrlCreatePic(@ScriptDir "\Rot.jpg", $,$2,  6279)
guictrlsetstate(-1,$Gui_disable)

GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg 
GUIGetMsg()
    Switch 
$nMsg
        
Case $GUI_EVENT_CLOSE
            GUISetState
(@SW_HIDE)

    EndSwitch
WEnd

WinSetState 
("Versuch","",@SW_HIDE)

Endfunc
Func _Exit
()
    Exit
Endfunc 

PS:Gibt ein fettes THX wenn ihr mir helfen könnt :D
09/08/2010 21:22 iDunnoi#2
ich weiß nicht warum du es dir so kompliziert machst. aber auf deine frage
ich würd mal bei rechts() links() usw die while schleife raulöschen.
alternativ zum verstecken:
PHP Code:
$title WinGetTitle("[active]""")
$handle WinGetHandle($title"")
WinSetState($handle"", @SW_hide
Alternativ zum verstecken und auch die bessere Methode:
ich weiß nicht warum du es dir so kompliziert machst. aber auf deine frage
ich würd mal bei rechts() links() usw die while schleife raulöschen.
alternativ zum verstecken und auch die bessere Methode wenns n längeres script werden soll:
PHP Code:
Guidelete() 
ich weiß nicht warum du nicht einfach das Bild verschiebst anstatt immer neue Formen zu erstellen und die dann zu verstecken
PHP Code:
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 GUICreate("Form1"633447448139)
$Pic1 GUICtrlCreatePic("Unknown.jpeg"1849614597BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg 
GUIGetMsg()
    Switch 
$nMsg
        
Case $GUI_EVENT_CLOSE
            GUICtrlDelete
($Pic1)
        
$Pic1 GUICtrlCreatePic("Unknown.jpeg"184914597BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
        
GUISetState(@SW_SHOW)
    EndSwitch
WEnd 
so den rest musst du jetz wirklich selber machen ;)^^


[Only registered and activated users can see links. Click Here To Register...]
09/08/2010 21:39 amnesi#3
THX THX THX danke danke ^^
09/08/2010 22:16 kknb#4
kannst du dann so weiterführen für die restlichen tasten.

Code:
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Misc.au3>
HotKeySet("{F4}", "_Exit")
$dll = DllOpen("user32.dll")

$1 = 25
$2 = 0
$3 = 62
$4 = 79

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

#Region ### START Koda GUI section ### Form=
$Gui = GUICreate("Versuch", 633, 447, 192, 124)
$Pic1 = GUICtrlCreatePic(@ScriptDir & "\rot.jpg", 50, $2, $3, $4)
$Pic = GUICtrlCreatePic(@ScriptDir & "\music.jpg", 0, 0, 1024, 768, $WS_CLIPSIBLINGS)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
	EndSwitch
	If _IsPressed("25", $dll) And $1 >= 25 Then
		$1 -= 25
		GUICtrlDelete($Pic1)
		$Pic1 = GUICtrlCreatePic(@ScriptDir & "\rot.jpg", $1, $2, $3, $4)
		$Pic1 = GUICtrlCreatePic(@ScriptDir & "\rot.jpg", $1, $2, $3, $4)
		GUISetState(@SW_SHOW)
	EndIf
WEnd

Func _Exit()
	Exit
EndFunc   ;==>_Exit
frag mich net warum ich das bild 2 mal createn musste, irgendwie spackt da autoit bei mir mit den ebenen rum, wenn ichs nur einmal mache ist das bild im hintergrund. hab da aber grad keine lust zu gucken wie man das mit den ebenen ändern kann, so gehts halt auch.