Bild in Gui per Knopfdruck ändern

  • Ich will per Knopfdruck (Pfeiltaste nach unten) immer ein anderes Bild anzeigen lassen und weiss nicht so genau wie ich das hinkriegen soll >-<
    Das ist mein unvollständiger script:

    [autoit]

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

    [/autoit][autoit][/autoit][autoit]

    Local $title, $iLine = 1, $titlepath = @ScriptDir & '\test.txt' ; der Dateipfad
    _FileReadToArray($titlepath, $title)

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    HotKeySet ( "{DOWN}","func1")

    [/autoit][autoit][/autoit][autoit]

    dim $login

    [/autoit][autoit][/autoit][autoit]

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Bilder anzeigen", 631, 799, 230, 2)

    [/autoit]

    Ich will dem $login noch eine Nummer zuweisen können, sodass dann das jeweilige Bild angezeigt wird (Die Frage ist: "WIE??"). Die Nummer wird in $title gespeichert.

    [autoit]


    ; Screen 1 wird ausgewählt
    $Pic1 = $login
    $login1 = GUICtrlCreatePic(@ScriptDir & "/img/title/title1.jpg", 0, 0, 630, 798, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    $login2 = GUICtrlCreatePic(@ScriptDir & "/img/title/title2.jpg", 0, 0, 630, 798, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    $login3 = GUICtrlCreatePic(@ScriptDir & "/img/title/title3.jpg", 0, 0, 630, 798, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    [/autoit]

    Bei der Funktion soll auch noch der Wert, der in $title gespeichert ist +1 genommen werden. Dazu brauch ich noch ne Abfrage, falls $title den Wert 3 hat, dass es dann nicht auf 4 gesetzt wird, sondern wieder auf 1.(Hier weiss ich auch nicht wie ich das machen soll)

    [autoit]


    Func func1()
    _FileWriteToLine($titlepath, $iLine, $title, 1)
    EndFunc

    [/autoit][autoit][/autoit][autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

    [/autoit]


    Kann mir vllt jemand helfen? x_X Ich hab da schon so einiges versucht, aber hat bisjetzt nix geklappt

  • du könntenst deinem $login ein array zuweißen xD

    und zu deiner letzten frage kannst du es so machen

    [autoit]

    $i = 0
    $i = $i +1
    If $i = 3 Then $i = 0

    [/autoit]

    Ich weiß net ob es geht aba ich denke schon ^^

    Einmal editiert, zuletzt von ScripterDrîzzt (18. August 2009 um 19:36)

  • was willst denn genau wissen ?!

    ich versteh irgend wie deine frage nicht ...

    wenn du ein login machen willst, und in abhängigkeit dieses login ein bild aufrufen willst ..

    dann must du ja eine "auswahl " treffen ..

    z.B

    [autoit]


    #include <GuiConstantsEx.au3>

    [/autoit][autoit][/autoit][autoit]

    $gui_breite = 1024;( @DesktopWidth / 2 ) ; Variable um Gui in der mitte de desktops zu platzieren
    $gui_hoehe = 600;( @DesktopHeight/ 2 ) ; Variable um Gui in der mitte de desktops zu platzieren

    [/autoit][autoit][/autoit][autoit]

    Opt("GUIOnEventMode", 1) ; Change to OnEvent mode , damit gui protokoll anderst abgearbeitet wird ( mit funktionen , nicht case )

    [/autoit][autoit][/autoit][autoit]

    $mainwindow = GUICreate("login .. bla bla " & @ScriptName, $gui_breite, $gui_hoehe, (@DesktopWidth / 2) - ($gui_breite / 2), (@DesktopHeight / 2) - ($gui_hoehe / 2)) ; Gui erstellen mainwindow
    GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked") ; wenn event $GUI_EVENT_CLOSE aktiviert wird, wird funktion "CLOSEClicked" aufgerufen

    [/autoit][autoit][/autoit][autoit]

    $bild1_quelle = (@ScriptDir & "\bilder\bild1.jpg")
    $bild2_quelle = (@ScriptDir & "\bilder\bild2.jpg")
    $bild3_quelle = (@ScriptDir & "\bilder\bild3.jpg")

    [/autoit][autoit][/autoit][autoit]

    $bild_offset_breite = 464 ;$gui_breite / 2

    [/autoit][autoit][/autoit][autoit]

    $bild_breite = 537;$gui_breite / 2
    $bild_hoehe = 401;$gui_hoehe /2

    [/autoit][autoit][/autoit][autoit]

    $bild_offset_hoehe = 176 ;$gui_hoehe /2

    [/autoit][autoit][/autoit][autoit]

    $bild1 = GUICtrlCreatePic($bild1_quelle, $bild_offset_breite, $bild_offset_hoehe, $bild_breite, $bild_hoehe)
    ;GUICtrlCreatePic ( filename, left, top [, width [, height [, style [, exStyle]]]] )
    GUICtrlSetState($bild1, $GUI_HIDE)

    [/autoit][autoit][/autoit][autoit]

    $bild2 = GUICtrlCreatePic($bild2_quelle, $bild_offset_breite, $bild_offset_hoehe, $bild_breite, $bild_hoehe)
    GUICtrlSetState($bild2, $GUI_HIDE)

    [/autoit][autoit][/autoit][autoit]

    $bild3 = GUICtrlCreatePic($bild3_quelle, $bild_offset_breite, $bild_offset_hoehe, $bild_breite, $bild_hoehe)
    GUICtrlSetState($bild3, $GUI_HIDE)

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]

    ; hier deine auswahl

    [/autoit][autoit][/autoit][autoit]

    $login = InputBox("login","bitte zahl zwischen 1 und 3 eingeben")

    [/autoit][autoit][/autoit][autoit]

    If $login = "1" Then
    GUICtrlSetState($bild1, $GUI_show)

    [/autoit][autoit][/autoit][autoit]

    ElseIf $login = "2" Then
    GUICtrlSetState($bild2, $GUI_show)

    [/autoit][autoit][/autoit][autoit]

    ElseIf $login = "3" Then
    GUICtrlSetState($bild3, $GUI_show)

    [/autoit][autoit][/autoit][autoit]

    EndIf

    [/autoit][autoit][/autoit][autoit]

    GUISetState(@SW_SHOW) ; starten des gui ! ( ausführung)

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    While 1

    [/autoit][autoit][/autoit][autoit]

    ; und hier dein übriger code

    [/autoit][autoit][/autoit][autoit]

    sleep(250)

    [/autoit][autoit][/autoit][autoit]

    WEnd

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]

    Func CLOSEClicked()

    [/autoit][autoit][/autoit][autoit]

    Exit

    [/autoit][autoit][/autoit][autoit]

    EndFunc ;==>CLOSEClicked

    [/autoit]

    noch bilder angeben .. dann müste es funktionieren .. .. wenn ich verstanden hab, was du überhaupt willst ..

    bye