Bilder Buttons zuweisen

  • hallo, ich habe hier folgendes

    Spoiler anzeigen

    $Screens = GUICtrlCreateTabItem("Screens")
    $Screen_1 = GUICtrlCreateButton("Screen 1", 10, 75, 90, 20)
    $Screen_2 = GUICtrlCreateButton("Screen 2", 100, 75, 90, 20)
    $Screen_3 = GUICtrlCreateButton("Screen 3", 190, 75, 90, 20)
    $Screen_4 = GUICtrlCreateButton("Screen 4", 280, 75, 90, 20)
    $Screen_5 = GUICtrlCreateButton("Screen 5", 370, 75, 90, 20)
    $Screen_6 = GUICtrlCreateButton("Screen 6", 460, 75, 90, 20)
    GUICtrlCreatePic("C:\Users\Screen1.jpg", 10, 105, 1090, 695)
    GUICtrlCreatePic("C:\Users\Screen2.jpg", 10, 105, 1090, 695)
    GUICtrlCreatePic("C:\Users\Screen3.jpg", 10, 105, 1090, 695)
    GUICtrlCreatePic("C:\Users\Screen4.jpg", 10, 105, 1090, 695)
    GUICtrlCreatePic("C:\Users\Screen5.jpg", 10, 105, 1090, 695)
    GUICtrlCreatePic("C:\Users\Screen6.jpg", 10, 105, 1090, 695)


    jetzt möchte ich halt auf den button $Screen_1 das bild GUICtrlCreatePic("C:\Users\Screen1.jpg", 10, 105, 1090, 695) sehen und immer so weiter, $Screen_2 = Screen2

    ich hab es mit der if then funktion probiert, aber es ging nicht.

    und mit der case switch funktion komm ich nicht wirklich hin.

    kann mir da evtl jmd helfen?

    grüße

    genauso bei den anderen, jeweils

    Einmal editiert, zuletzt von Emma-En (27. Oktober 2008 um 21:22)

  • hi,
    kannst du mir das evtl etwas genauer erklären?

    denn wenn ich Notify als style eingefügt habe, sagt er mir ein fehler....

    • Offizieller Beitrag
    Spoiler anzeigen
    [autoit]

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

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

    Opt('MustDeclareVars', 1)

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

    Global $gui, $guiPos, $pic, $picPos

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

    Example1()

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

    ;----- example 1 ----
    Func Example1()
    Local $n, $msg

    GUICreate("My GUI picture", 350, 300, -1, -1, $WS_SIZEBOX + $WS_SYSMENU) ; will create a dialog box that when displayed is centered

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

    GUISetBkColor(0xE0FFFF)
    $n = GUICtrlCreatePic(@SystemDir & "\oobe\images\mslogo.jpg", 50, 50, 200, 50, $SS_NOTIFY)

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

    GUISetState()

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

    ; Run the GUI until the dialog is closed
    While 1
    $msg = GUIGetMsg()

    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    If $msg = $n Then MsgBox(64, 'Ey', 'Hau mich nicht!', 0.5)
    WEnd
    EndFunc ;==>Example1

    [/autoit]
  • Es geht nicht ohne SS_NOTIFY, da das die Standart-Einstellung ist. Könnte sich aber in einer neuen Version ändern.
    ( gib einfach mal statt SS_NOTIFY eine 0 ein, dann geht es nicht mehr :) )

  • also hätte es doch lieber, wenn es irgendwie über die buttons llafen könnte, denn so raff ich jetzt gar nix mehr :wacko:

  • @Xeno: Hab nicht aktualisiert ... :wacko:

    @Emma-En: $SS_NOTIFY ist ein Controlstyle. Wenn er gesetzt ist, heißt das, dass dass Control das Skript benachrichtigt, wenn es geklickt wird. Wenn man ihn nicht setzt, wird der Klick nicht gesendet.

  • hab es jetzt so gelöst und es klappt sogar:

    Spoiler anzeigen

    GUISetState()

    While True
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $Screen_1
    GUICtrlCreatePic("C:\Users\Screen1.jpg", 10, 105, 1090, 695)


    Case $msg = $Screen_2
    GUICtrlCreatePic("C:\Users\Screen2.jpg", 10, 105, 1090, 695)

    Case $msg = $Screen_3
    GUICtrlCreatePic("C:\Users\Screen3.jpg", 10, 105, 1090, 695)

    Case $msg = $Screen_4
    GUICtrlCreatePic("C:\Users\Screen4.jpg", 10, 105, 1090, 695)

    Case $msg = $Screen_5
    GUICtrlCreatePic("C:\Users\Screen5.jpg", 10, 105, 1090, 695)

    Case $msg = $Screen_6
    GUICtrlCreatePic("C:\Users\Screen6.jpg", 10, 105, 1090, 695)

    EndSelect
    WEnd

    kann also doch mit autoit weitermachen :)

  • Du erstellst jedesmal ein neues Steuerelement, das ist nicht nötig ...

    Spoiler anzeigen
    [autoit]

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

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

    $hwnd = GUICreate ('Test', 1090, 695, 0x80000000, 0x80000000, $WS_OVERLAPPEDWINDOW)

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

    $tab = GUICtrlCreateTab (0, 0, 1090, 695)

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

    $Screens = GUICtrlCreateTabItem ("Screens")
    $Screen_1 = GUICtrlCreateButton ("Screen 1", 10, 75, 90, 20)
    $Screen_2 = GUICtrlCreateButton ("Screen 2", 100, 75, 90, 20)
    $Screen_3 = GUICtrlCreateButton ("Screen 3", 190, 75, 90, 20)
    $Screen_4 = GUICtrlCreateButton ("Screen 4", 280, 75, 90, 20)
    $Screen_5 = GUICtrlCreateButton ("Screen 5", 370, 75, 90, 20)
    $Screen_6 = GUICtrlCreateButton ("Screen 6", 460, 75, 90, 20)

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

    $button_1 = GUICtrlCreatePic ("C:\Users\Screen1.jpg", 10, 105, 1090, 695)

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

    GUISetState ()

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

    While True
    $msg = GUIGetMsg ()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $Screen_1
    GUICtrlSetImage ($button_1, "C:\Users\Screen1.jpg")

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

    Case $msg = $Screen_2
    GUICtrlSetImage ($button_1, "C:\Users\Screen2.jpg")

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

    Case $msg = $Screen_3
    GUICtrlSetImage ($button_1, "C:\Users\Screen3.jpg")

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

    Case $msg = $Screen_4
    GUICtrlSetImage ($button_1, "C:\Users\Screen4.jpg")

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

    Case $msg = $Screen_5
    GUICtrlSetImage ($button_1, "C:\Users\Screen5.jpg")

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

    Case $msg = $Screen_6
    GUICtrlSetImage ($button_1, "C:\Users\Screen6.jpg")

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

    EndSelect
    WEnd

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


    Gruß
    Greenhorn

    p.s. Selbstverständlich kannst Du mit AutoIt weitermachen ! ;)


  • ein wieso? so ein großer unterschied ist es doch nicht, oder? so sieht es bei mir jetzt aus

    Spoiler anzeigen

    $Screens = GUICtrlCreateTabItem("Screens")
    $Screen_1 = GUICtrlCreateButton("Screen 1", 10, 75, 90, 20)
    $Screen_2 = GUICtrlCreateButton("Screen 2", 100, 75, 90, 20)
    $Screen_3 = GUICtrlCreateButton("Screen 3", 190, 75, 90, 20)
    $Screen_4 = GUICtrlCreateButton("Screen 4", 280, 75, 90, 20)
    $Screen_5 = GUICtrlCreateButton("Screen 5", 370, 75, 90, 20)
    $Screen_6 = GUICtrlCreateButton("Screen 6", 460, 75, 90, 20)

    GUISetState()

    While True
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $Screen_1
    GUICtrlCreatePic("C:\Users\Screen1.jpg", 10, 105, 1090, 695)

    Case $msg = $Screen_2
    GUICtrlCreatePic("C:\Users\Screen2.jpg", 10, 105, 1090, 695)
    ;GUICtrlDelete($Screen_1)

    Case $msg = $Screen_3
    GUICtrlCreatePic("C:\Users\Screen3.jpg", 10, 105, 1090, 695)

    Case $msg = $Screen_4
    GUICtrlCreatePic("C:\Users\Screen4.jpg", 10, 105, 1090, 695)

    Case $msg = $Screen_5
    GUICtrlCreatePic("C:\Users\Screen5.jpg", 10, 105, 1090, 695)

    Case $msg = $Screen_6
    GUICtrlCreatePic("C:\Users\Screen6.jpg", 10, 105, 1090, 695)

    EndSelect
    WEnd

    das einzigste was jetzt noch ist, wenn ich auf ein button drücke, muß ich 2 mal drücken damit das neue bild erscheint...

  • danke nochmal , auch an Greenhorn , das problem mit dem 2 mal anklicken um ein neues bild zu haben hat sich damit auch erledigt, funktioniert einwandfrei :D

    Spoiler anzeigen

    $Button1 = GUICtrlCreatePic("C:\Users\Screen1.jpg", 10, 105, 1090, 695)

    GUISetState()

    While True
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $Screen_1
    GUICtrlSetImage ($Button1, "C:\Users\Screen1.jpg")

    Case $msg = $Screen_2
    GUICtrlSetImage ($Button1, "C:\Users\Screen2.jpg")

    Case $msg = $Screen_3
    GUICtrlSetImage ($Button1, "C:\Users\Screen3.jpg")

    Case $msg = $Screen_4
    GUICtrlSetImage ($Button1, "C:\Users\Screen4.jpg")

    Case $msg = $Screen_5
    GUICtrlSetImage ($Button1, "C:\Users\Screen5.jpg")

    Case $msg = $Screen_6
    GUICtrlSetImage ($Button1, "C:\Users\Screen6.jpg")

    EndSelect
    WEnd


    so, um alles zu vollenden hier nochmal das, was ich jetzt habe (imprinzip das gleiche was greenhorn gepostet hat)

  • Wenn du das nicht verstehst , dann hör lieber mit Autoit auf!!!


    oh wie nett :pinch:

    ---
    In "Independence Day" konnten die Windows-Erdcomputer problemlos mit denen der Außerirdischen kommunizieren. Was sagt uns das über unseren lieben Bill Gates? :D
    ---