Klick auf Grafik -> neues Fenster

  • Hallöchen

    Ok, klingt simpel, aber ich find den richtigen Begriff nicht.

    Beim Klick auf eine kleine Grafik soll sich ein neues kleines Fenster öffnen, in dem man ein paar Einstellungen machen kann, die bestimmte Variablen effektieren.
    Ich habe versucht, bei klick auf einen Button einfach mit GuiCreate ein neues Fenster zu öffnen. Da passierte allerdings nichts.

    Nach welchem Begriff muss ich suchen?

    LG

  • Hi!

    Korrigiert mich wenn ich Müll erzähle!

    Eine Grafik in der Gui ? Denn kannst du einfach mit Case $bild1!

    Zeig mal deinen Source bitte! Haste auch GuiSetState Bla @SW_SHOW gestellt ?

    MFG Lenny

    Jaja, Moo does the Cow!

  • Du hast geschrieben :
    Ich habe versucht, bei klick auf einen Button einfach mit GuiCreate ein neues Fenster zu öffnen. Da passierte allerdings nichts.

    Zeig mal deinen Code.

  • Hi, keine Ahnung ob ich das richtig verstanden habe, vielleicht hilft es dir:

    Spoiler anzeigen
    [autoit]


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

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

    ; Hauptfenster
    $oFrmMain = GUICreate('Hauptfenster',200,250)
    $lbl1 = GUICtrlCreateLabel("Test1",5,5,190,20)
    $lbl2 = GUICtrlCreateLabel("Test2",5,35,190,20)
    $lbl3 = GUICtrlCreateLabel("Test3",5,65,190,20)
    $lbl4 = GUICtrlCreateLabel("Test4",5,95,190,20)
    $lbl5 = GUICtrlCreateLabel("Test5",5,125,190,20)
    $oSettingPic = GUICtrlCreatePic(@SystemDir & "\oobe\images\mslogo.jpg", 5, 155, 200, 50)
    GUICtrlSetCursor(-1,0)
    GUISetState(@SW_SHOW,$oFrmMain)

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

    ; SettingFenster
    $oFrmSettings = GUICreate('Einstellungen',200,190)
    $edit1 = GUICtrlCreateEdit("Test1",5,5,190,20)
    $edit2 = GUICtrlCreateEdit("Test2",5,35,190,20)
    $edit3 = GUICtrlCreateEdit("Test3",5,65,190,20)
    $edit4 = GUICtrlCreateEdit("Test4",5,95,190,20)
    $edit5 = GUICtrlCreateEdit("Test5",5,125,190,20)
    $buttonCloseSettings = GUICtrlCreateButton('Schliessen',5,155,190,20)

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

    ;1. While für das Hauptfenster
    While 1
    $msg = GUIGetMsg($oFrmMain)
    Switch $msg
    Case $GUI_EVENT_CLOSE
    ExitLoop
    Case $oSettingPic
    GUISetState(@SW_HIDE,$oFrmMain)
    GUISetState(@SW_SHOW,$oFrmSettings)

    While 1
    $msg = GUIGetMsg($oFrmSettings)
    Switch $msg
    Case $GUI_EVENT_CLOSE
    GUISetState(@SW_HIDE,$oFrmSettings)
    GUISetState(@SW_SHOW,$oFrmMain)
    ExitLoop
    Case $buttonCloseSettings
    GUISetState(@SW_HIDE,$oFrmSettings)
    GUISetState(@SW_SHOW,$oFrmMain)
    ExitLoop
    EndSwitch
    WEnd
    GUICtrlSetData($lbl1,GUICtrlRead($edit1))
    GUICtrlSetData($lbl2,GUICtrlRead($edit2))
    GUICtrlSetData($lbl3,GUICtrlRead($edit3))
    GUICtrlSetData($lbl4,GUICtrlRead($edit4))
    GUICtrlSetData($lbl5,GUICtrlRead($edit5))
    EndSwitch
    WEnd

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

    Hier wird auf ein Bild geklickt und es geht ein zweites Form auf in dem Du Werte ändern kannst, ist zwar nicht schön aber der Grundgedanke sollte zu erkennen sein :)

    Mfg
    Jens (McPoldy)

    Twitter: jkroeger

    Denn die Dinge, die wir erst lernen müssen, bevor wir sie tun, lernen wir beim Tun.(Aristoteles)

  • Lenny und Greek

    Sry, viel Sourcecode hatte ich da nicht. Hatte einen Codeschnipsel hier im Forum gefunden, der vllt etwas aus dem Zusammenhang war und daher nicht so funktionierte wie ich das wollte. Ich dachte, ich hätte das so nachstellen können, und als das nicht klappte, habe ich das wieder verworfen.

    @McPoly

    Ja, ganz genau soetwas meinte ich.

    Es geht darum, das im normalen Fenster an 3 Stellenfarbcodes eingegeben werden können, manuell. Dahinter ist eine Grafik (ne Miniausgabe einer Farbpalette, etwas in die Richtung eben, nicht so wichtig), wo man zu erweiterten Einstellungen gelangt, in eben jenem neuen geöffneten Fenster.
    Also: Easy Mode und Advanced, obwohl das etwas überzogen klingt... Advanced *g*

    Nun, auf die Art wollte ich das lösen, und mit deinem Code kann ich das nun, wunderbarer weise, nachvollziehen.
    Ich werde mir das also dankend zu Gemüte führen :)

    Lieben Dank allen Antwortern.

    LG

    PS: Hatte auch überlegt, ob ich für Easy / Advanced einfach 2 Reiter erstelle, wo man die Einstellungen machen kann. Ich bin nicht sicher, wie das ganze am professionellsten ausschaut. Das mit dem Klick auf ein Bild kommt mir ab ok vor, und auch nicht allzuschwer nachvollziehbar für spätere Anwender (so es jemanden geben sollte)

    Nochmal edit: Ist es möglich, die alte Form unter der neuen im Hintergrund sichtbar zu belassen?

  • Jau geht auch:

    Spoiler anzeigen
    [autoit]


    .......
    ;1. While für das Hauptfenster
    While 1
    $msg = GUIGetMsg($oFrmMain)
    Switch $msg
    Case $GUI_EVENT_CLOSE
    ExitLoop
    Case $oSettingPic
    GUISetState(@SW_DISABLE,$oFrmMain) ;<-- Hier von @SW_HIDE nach @SW_DISABLE
    GUISetState(@SW_SHOW,$oFrmSettings)

    While 1
    $msg = GUIGetMsg($oFrmSettings)
    Switch $msg
    Case $GUI_EVENT_CLOSE
    GUISetState(@SW_HIDE,$oFrmSettings)
    GUISetState(@SW_ENABLE,$oFrmMain) ;<-- Hier von @SW_SHOW nach @SW_ENABLE
    ExitLoop
    Case $buttonCloseSettings
    GUISetState(@SW_HIDE,$oFrmSettings)
    GUISetState(@SW_ENABLE,$oFrmMain) ;<-- Hier von @SW_SHOW nach @SW_ENABLE
    ExitLoop
    EndSwitch
    WEnd
    ........

    [/autoit]

    Mfg
    Jens (McPoldy)

    Twitter: jkroeger

    Denn die Dinge, die wir erst lernen müssen, bevor wir sie tun, lernen wir beim Tun.(Aristoteles)