AutoIt

09/21/2010 20:48 FizzeBu#1
Hallo,

ich habe mehrere Bilder mit der gleichen Größe übereinander gelegt. Ich habe sie alle unsichtbar gemacht. Mit Random geb ich einer Variablen eine Zahl. Wenn die Zahl 1 ist, soll das erste Bild sichtbar werden, bei 2 das Zweite...
Ich habs schon mit einigen befehlen probiert, hat aber nie geklappt. Ich will eigentlich nur wissen welchen Befehl man benutzen muss.

Danke schonmal

FizzeBu
09/21/2010 21:04 mipez#2
$GUI_SHOW oô

Code:
$pic1 = GuiCtrlCreatePic(...)
GuiCtrlSetState(-1,$GUI_HIDE)
$pic2 = GuiCtrlCreatePic(...)
GuiCtrlSetState(-1,$GUI_HIDE)
$pic3 = GuiCtrlCreatePic(...)
GuiCtrlSetState(-1,$GUI_HIDE)

$select = Random(1,3,1)

If $select = 1 Then
GuiCtrlSetState($pic1,$GUI_SHOW+$GUI_ONTOP)
ElseIf $select = 2 Then
GuiCtrlSetState($pic2,$GUI_SHOW+$GUI_ONTOP)
ElseIf $select = 3 Then
GuiCtrlSetState($pic3,$GUI_SHOW+$GUI_ONTOP)
EndIf
Probiers mal, hab iMo kein AutoIt zur Verfügung xD
09/21/2010 21:12 FizzeBu#3
nee hab ich schon probiert... ich hab keeinie ahnung was ich falsch mach ich posts hier mal:
Quote:
$background = Random (1,9)

If $background = 1 Then
GuiCtrlSetState($Pic1,$GUI_SHOW+$GUI_ONTOP)
ElseIf $background = 2 Then
GuiCtrlSetState($Pic2,$GUI_SHOW+$GUI_ONTOP)
ElseIf $background = 3 Then
GuiCtrlSetState($Pic3,$GUI_SHOW+$GUI_ONTOP)
ElseIf $background = 4 Then
GuiCtrlSetState($Pic4,$GUI_SHOW+$GUI_ONTOP)
ElseIf $background = 5 Then
GuiCtrlSetState($Pic5,$GUI_SHOW+$GUI_ONTOP)
ElseIf $background = 6 Then
GuiCtrlSetState($Pic6,$GUI_SHOW+$GUI_ONTOP)
ElseIf $background = 7 Then
GuiCtrlSetState($Pic7,$GUI_SHOW+$GUI_ONTOP)
ElseIf $background = 8 Then
GuiCtrlSetState($Pic8,$GUI_SHOW+$GUI_ONTOP)
ElseIf $background = 9 Then
GuiCtrlSetState($Pic9,$GUI_SHOW+$GUI_ONTOP)
EndIf
09/21/2010 22:17 lolkop#4
wenn das mit gui commands nich funzt dann auf jeden fall mit control commands.

angenommen du hast bilder die zb so beannt sind: 0.jpg, 1.jpg, 2.jpg, ..., 7.jpg

daraus könnte man dann diesen code bauen:
Code:
$gui = GUICreate("gui")
$size = WinGetPos($gui)
Dim $pic[8], $old
For $i=0 To 7
	$pic[$i] = GUICtrlCreatePic($i&".jpg", 0, 0, $size[2]-6, $size[3]-100)
	ControlHide($gui, '', $pic[$i])
Next
$btn = GUICtrlCreateButton("blah", 0, $size[3]-100, $size[2]-6, 68)
GUISetState()

While 1
	Switch GUIGetMsg()
		Case -3
			ExitLoop
		Case $btn
			For $i=0 To 7
				If ControlCommand($gui, '', $pic[$i], "IsVisible", "") Then 
					ControlHide($gui, '', $pic[$i])
					$old = $i
				EndIf
			Next
			Do
				$new = Random(0,7)
			Until $new<> $old
			ControlShow($gui, '', $pic[$new])
			ControlShow($gui, '', $btn)
	EndSwitch
WEnd
so wird auf button druck jedes mal ein anderer hintergrund aufgebaut, als der der gerade aktiv ist.
09/22/2010 14:41 FizzeBu#5
joo danke, habs hingekriegt :D
lag nicht an dem befehl, sondern am random befehl :D
trozdem danke an alle