Immer noch problem mit Seiten von Gui

  • Stehe immer noch vor dem problem das ich keine seiten blättern kann
    bzw. nicht genau dahinter steigen wie man das macht
    bitte um eure hilfe
    gruss Detroit49

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <objDictionary.au3>
    $bla=GUICreate("test", 860, 418, -1, -1,BitOR($WS_MINIMIZEBOX, $WS_CAPTION, $WS_POPUP, $WS_SYSMENU, $WS_CLIPCHILDREN))
    GUISetBkColor(0x000000)
    ;SEITE 1:
    $button1=GUICtrlCreateButton("1", 8, 376, 91, 33)
    GUICtrlSetPage($button1,"seite1")
    $button2=GUICtrlCreateButton("2", 8, 376, 91, 33))
    GUICtrlSetPage($button2,"seite1")

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

    ;SEITE2:
    $label=GUICtrlCreateLabel("1", 8, 376, 91, 33)
    GUICtrlSetPage($label,"seite2")

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

    GUIShowPage("seite1") ;-> UDF

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

    GUISetState(@SW_SHOW)

    [/autoit]

    Einmal editiert, zuletzt von Detroit49 (8. April 2011 um 13:40)

  • Wie wärs mal mit nem vollständigen GUI Script plus alle Fremdincludes und Funktionen? Dein Beispiel verfügt ja noch nichtmal über eine GUI Schleife, auch die beiden "Page" Funktionen gehören nicht zum Standardfunktionssatz von Autoit.

  • Wie wärs mal mit nem vollständigen GUI Script plus alle Fremdincludes und Funktionen? Dein Beispiel verfügt ja noch nichtmal über eine GUI Schleife, auch die beiden "Page" Funktionen gehören nicht zum Standardfunktionssatz von Autoit.


    Zitat

    Stehe immer noch vor dem problem das ich keine seiten blättern kann
    bzw. nicht genau dahinter steigen wie man das macht
    bitte um eure hilfe
    gruss Detroit49

  • Naja von irgendwo musst du diese setPage Funktion ja kopiert haben oder war das einfach nur mal so geraten? Ich weiss nicht was du genau machen willst, aber wenn du Tabs in einer GUI meisnt dann benutzt das hier:

    [autoit]


    guictrlcreatetab(10,20)
    $tab1 = guictrlcreatetabitem("tab1")
    ; die controls die im tab sein sollen
    $tab2 = guictrlcreatetabitem("tab2 undso")
    ; controls die in tab2 sein sollen
    ; usw.

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

    GUICtrlCreateTabItem("") ; das hier am ende wenn alle tabs definiert sind

    [/autoit]

    Details und weitere Beispiele siehe Hilfe.

  • ich habe das script hier aus dem forum
    jedoch komme ich damit nicht ganz klar


    Ich wollte halt eine Gui machen die mehrere seiten hat
    und ich die seiten getrennt gestalten kann

  • Dann solltest du mal einen Link zum entsprechenden Thread posten. Es handelt sich ja hier scheinbar um eine UDF. Vielleicht fehlt dir auch nur das zugehörige include. Aber Tabs sollten deinem Wunsch genauso entsprechen.

  • Ich rate mal das du mit "Seiten blättern" meinst, das man z.B. auf(" Weiter") Button auf eine neue Site kommt, richtig?`Wenn du das so meinst musst du die Control IDs in ein Array speichern, die Controls löschen bzw umbenennen und neu zeichnen. Bei vielen Installern ist das so.

  • Ne :D tabs mag ich nocht ^^

    So wollte ich das machen
    also das ich von seite zu seite springen kann

    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 615, 438, 192, 124)
    $Button1 = GUICtrlCreateButton("Seite1", 176, 408, 75, 25)
    $Button2 = GUICtrlCreateButton("Seite2", 16, 408, 75, 25)
    $Button3 = GUICtrlCreateButton("Seite3", 96, 408, 75, 25)
    $Button4 = GUICtrlCreateButton("Seite4", 256, 408, 75, 25)
    $Button5 = GUICtrlCreateButton("Seite5", 336, 408, 75, 25)
    $Button6 = GUICtrlCreateButton("Seite6", 416, 408, 75, 25)
    $Button7 = GUICtrlCreateButton("Seite7", 504, 408, 75, 25)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

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

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

    EndSwitch
    WEnd

    [/autoit]
  • Jupp dann eben GUI_HIDE und GUI_SHOW verwenden, wie BadBunny bereits vorgeschlagen hat. Je nach Anzahl der Controls solltest du eventuell in Betracht ziehen die Controlids jeder Seite in einem Array zu speichern, das macht die Ein und Ausblenderei sehr viel übersichtlicher. Hier mal ein simples Beispiel das nur die Controls von Seite 1 und Seite 2 ein/aus blendet.

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 615, 438, 192, 124)
    $Button1 = GUICtrlCreateButton("Seite1", 176, 408, 75, 25)
    $Button2 = GUICtrlCreateButton("Seite2", 16, 408, 75, 25)
    $Button3 = GUICtrlCreateButton("Seite3", 96, 408, 75, 25)
    $Button4 = GUICtrlCreateButton("Seite4", 256, 408, 75, 25)
    $Button5 = GUICtrlCreateButton("Seite5", 336, 408, 75, 25)
    $Button6 = GUICtrlCreateButton("Seite6", 416, 408, 75, 25)
    $Button7 = GUICtrlCreateButton("Seite7", 504, 408, 75, 25)

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

    $label1 = GUICtrlCreateLabel("seite 1",50,50)
    GUICtrlSetState($label1,$GUI_SHOW)
    $label2 = GUICtrlCreateLabel("seite 2",150,150)
    GUICtrlSetState($label2,$GUI_HIDE)

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

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

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    GUICtrlSetState($label1,$GUI_SHOW)
    GUICtrlSetState($label2,$GUI_HIDE)
    Case $Button2
    GUICtrlSetState($label1,$GUI_HIDE)
    GUICtrlSetState($label2,$GUI_SHOW)
    EndSwitch
    WEnd

    [/autoit]
  • ich hab mal zu Testzwecken folgendes gemacht:
    ein MasterFenster das über Buttons Child-Gui's aufruft.

    Spoiler anzeigen
    [autoit]

    #include <GuiConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GUIConstants.au3>
    #include <GuiTab.au3>
    #include <Misc.au3>

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

    Opt("MustDeclareVars", 1)
    Opt("GUIOnEventMode", 1)
    HotKeySet ( "^t", "show_btn" )
    Const $main_gui_width = 860
    Const $main_gui_height = 710
    Const $child_gui_width = 860
    Const $child_gui_height = 660
    Const $btn_bkcol = 0xd4d0c8
    Const $btn_col = 0x000000
    Const $btn_bkcol_a = 0x0a246a
    Const $btn_col_a = 0xffffff
    Global $dll = DllOpen("user32.dll")
    Global $btn_child[6]
    Global $btn_shown = 1
    Global $strg_t = 0
    Global $title = "Demo für Child-Fenster"
    Global $dummy = GUICtrlCreateLabel("", 0, 0, 1, 1)
    Global $main_gui = GUICreate($title, $main_gui_width, $main_gui_height, -1, -1, BitOR($WS_OVERLAPPEDWINDOW, $WS_CLIPSIBLINGS))
    Global $child1_gui, $child2_gui, $child3_gui, $child4_gui, $child5_gui, $child_akt, $child_old
    $btn_child[1] = GUICtrlCreateButton("Button 1", 10, 0, 160, 30)
    GUICtrlSetFont(-1, 10, 300)
    GUICtrlSetOnEvent(-1, "child_show")
    $btn_child[2] = GUICtrlCreateButton("Button 2", 180, 0, 160, 30)
    GUICtrlSetFont(-1, 10, 300)
    GUICtrlSetOnEvent(-1, "child_show")
    ;GUICtrlSetState(-1, $GUI_HIDE)
    $btn_child[3] = GUICtrlCreateButton("Button 3", 350, 0, 160, 30)
    GUICtrlSetFont(-1, 10, 300)
    GUICtrlSetOnEvent(-1, "child_show")
    ;GUICtrlSetState(-1, $GUI_HIDE)
    $btn_child[4] = GUICtrlCreateButton("Button 4", 520, 0, 160, 30)
    GUICtrlSetFont(-1, 10, 300)
    GUICtrlSetOnEvent(-1, "child_show")
    ;GUICtrlSetState(-1, $GUI_HIDE)
    $btn_child[5] = GUICtrlCreateButton("Button 5", 690, 0, 160, 30)
    GUICtrlSetFont(-1, 10, 300)
    GUICtrlSetOnEvent(-1, "child_show")
    ;GUICtrlSetState(-1, $GUI_HIDE)
    GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")

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

    child1_gui()
    child2_gui()
    child3_gui()
    child4_gui()
    child5_gui()

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

    $child_akt = $child1_gui ; um letzten aktiven Button wieder neutral zu färben
    GUICtrlSetBkColor($btn_child[1], $btn_bkcol_a)
    GUICtrlSetColor($btn_child[1], $btn_col_a)
    GUICtrlSetState($dummy, $GUI_FOCUS)
    GUISetState(@SW_SHOW, $main_gui)
    GUISetState(@SW_SHOW, $child1_gui)

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

    While 1
    Sleep(1)
    WEnd

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

    Func show_btn()
    If $btn_shown = 5 Then Return
    GUICtrlSetState($btn_child[$btn_shown + 1], $GUI_Show)
    $btn_shown += 1
    $strg_t = 0
    Sleep(500)
    EndFunc ;==>show_btn

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

    Func child_show()
    $child_old = $child_akt
    Switch @GUI_CtrlId
    Case $btn_child[1]
    If $child_akt <> $child1_gui Then
    GUISetState(@SW_HIDE, $child_akt)
    GUISetState(@SW_SHOW, $child1_gui)
    $child_akt = $child1_gui
    GUICtrlSetBkColor($btn_child[1], $btn_bkcol_a)
    GUICtrlSetColor($btn_child[1], $btn_col_a)
    GUICtrlSetState($dummy, $GUI_FOCUS)
    EndIf
    Case $btn_child[2]
    If $child_akt <> $child2_gui Then
    GUISetState(@SW_HIDE, $child_akt)
    GUISetState(@SW_SHOW, $child2_gui)
    $child_akt = $child2_gui
    GUICtrlSetBkColor($btn_child[2], $btn_bkcol_a)
    GUICtrlSetColor($btn_child[2], $btn_col_a)
    GUICtrlSetState($dummy, $GUI_FOCUS)
    EndIf
    Case $btn_child[3]
    If $child_akt <> $child3_gui Then
    GUISetState(@SW_HIDE, $child_akt)
    GUISetState(@SW_SHOW, $child3_gui)
    $child_akt = $child3_gui
    GUICtrlSetBkColor($btn_child[3], $btn_bkcol_a)
    GUICtrlSetColor($btn_child[3], $btn_col_a)
    GUICtrlSetState($dummy, $GUI_FOCUS)
    EndIf
    Case $btn_child[4]
    If $child_akt <> $child4_gui Then
    GUISetState(@SW_HIDE, $child_akt)
    GUISetState(@SW_SHOW, $child4_gui)
    $child_akt = $child4_gui
    GUICtrlSetBkColor($btn_child[4], $btn_bkcol_a)
    GUICtrlSetColor($btn_child[4], $btn_col_a)
    GUICtrlSetState($dummy, $GUI_FOCUS)
    EndIf
    Case $btn_child[5]
    If $child_akt <> $child5_gui Then
    GUISetState(@SW_HIDE, $child_akt)
    GUISetState(@SW_SHOW, $child5_gui)
    $child_akt = $child5_gui
    GUICtrlSetBkColor($btn_child[5], $btn_bkcol_a)
    GUICtrlSetColor($btn_child[5], $btn_col_a)
    GUICtrlSetState($dummy, $GUI_FOCUS)
    EndIf
    EndSwitch
    If $child_old <> $child_akt Then
    Switch $child_old
    Case $child1_gui
    GUICtrlSetBkColor($btn_child[1], $btn_bkcol)
    GUICtrlSetColor($btn_child[1], $btn_col)
    Case $child2_gui
    GUICtrlSetBkColor($btn_child[2], $btn_bkcol)
    GUICtrlSetColor($btn_child[2], $btn_col)
    Case $child3_gui
    GUICtrlSetBkColor($btn_child[3], $btn_bkcol)
    GUICtrlSetColor($btn_child[3], $btn_col)
    Case $child4_gui
    GUICtrlSetBkColor($btn_child[4], $btn_bkcol)
    GUICtrlSetColor($btn_child[4], $btn_col)
    Case $child5_gui
    GUICtrlSetBkColor($btn_child[5], $btn_bkcol)
    GUICtrlSetColor($btn_child[5], $btn_col)
    EndSwitch
    EndIf

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

    EndFunc ;==>child_show
    Func child1_gui()
    $child1_gui = GUICreate("", $child_gui_width, $child_gui_height, 0, 10, BitOR($WS_CHILD, $WS_TABSTOP), $WS_EX_CONTROLPARENT, $main_gui)
    GUICtrlCreateLabel("Dies ist Seite 1", 50, 200, 200, 30)
    GUICtrlSetFont(-1, 12, 600)
    GUISetState(@SW_HIDE, $child1_gui)
    EndFunc ;==>child1_gui
    Func child2_gui()
    $child2_gui = GUICreate("", $child_gui_width, $child_gui_height, 0, 10, BitOR($WS_CHILD, $WS_TABSTOP), $WS_EX_CONTROLPARENT, $main_gui)
    GUICtrlCreateLabel("Dies ist Seite 2", 50, 200, 200, 30)
    GUICtrlSetFont(-1, 12, 600)
    GUISetState(@SW_HIDE, $child2_gui)
    EndFunc ;==>child2_gui
    Func child3_gui()
    $child3_gui = GUICreate("", $child_gui_width, $child_gui_height, 0, 10, BitOR($WS_CHILD, $WS_TABSTOP), $WS_EX_CONTROLPARENT, $main_gui)
    GUICtrlCreateLabel("Dies ist Seite 3", 50, 200, 200, 30)
    GUICtrlSetFont(-1, 12, 600)
    GUISetState(@SW_HIDE, $child3_gui)
    EndFunc ;==>child3_gui
    Func child4_gui()
    $child4_gui = GUICreate("", $child_gui_width, $child_gui_height, 0, 10, BitOR($WS_CHILD, $WS_TABSTOP), $WS_EX_CONTROLPARENT, $main_gui)
    GUICtrlCreateLabel("Dies ist Seite 4", 50, 200, 200, 30)
    GUICtrlSetFont(-1, 12, 600)
    GUISetState(@SW_HIDE, $child4_gui)
    EndFunc ;==>child4_gui
    Func child5_gui()
    $child5_gui = GUICreate("", $child_gui_width, $child_gui_height, 0, 10, BitOR($WS_CHILD, $WS_TABSTOP), $WS_EX_CONTROLPARENT, $main_gui)
    GUICtrlCreateLabel("Dies ist Seite 5", 50, 200, 200, 30)
    GUICtrlSetFont(-1, 12, 600)
    GUISetState(@SW_HIDE, $child5_gui)
    EndFunc ;==>child5_gui

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

    Func CLOSEClicked()
    Exit 0
    EndFunc ;==>CLOSEClicked

    [/autoit]

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)