Text wird falsch angezeigt

  • Warum klappt das mit den Textanzeigen nicht, wenn der drite Tab angeschaltet ist?

    LG, Crazy-A.

    Spoiler anzeigen
    [autoit]


    #include <GUIConstants.au3>

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

    $gui = GUICreate("Beispiel",410,410) ; erstellt ein GUI-Fenster welches mittig ausgerichtet wird

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

    $tab=GUICtrlCreateTab (5,105, 400,300)
    $an = GUICtrlCreateButton("an", 50,50,50,50)
    $aus = GUICtrlCreateButton("aus", 50,50,50,50)
    GUICtrlSetState($aus, $GUI_HIDE)

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

    ; Tab 1
    $tab0=GUICtrlCreateTabitem ("Grund 1")
    GUICtrlSetState(-1,$GUI_SHOW); Dieser Tab wird beim Programmstart aufgerufen

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

    ; Tab 2
    $tab1=GUICtrlCreateTabitem ("Grund 2")
    $label1_1 = GUICtrlCreateLabel("Darf nur bei Grund 2 erscheinen",150,150,150,150)
    GUISetFont(9, 300)

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

    ; Tab 3
    $tab2=GUICtrlCreateTabitem ("")
    $label2_1 = GUICtrlCreateLabel("Darf nur bei Grund 3 erscheinen",150,150,150,150)
    GUICtrlSetBkColor(-1,0xFCFCFE) ; Grün
    GUISetFont(9, 300)

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

    GUICtrlSetState($label2_1, $GUI_HIDE)

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

    GUISetState ()

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

    ; die GUI läuft bis sie geschlossen wird
    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $an
    GUICtrlSetState($an, $GUI_HIDE)
    GUICtrlSetState($label2_1, $GUI_SHOW)
    GUICtrlSetState($aus, $GUI_SHOW)
    $tab2=GUICtrlCreateTabitem ("Grund 3")
    GUICtrlSetState($tab2,$GUI_SHOW)
    Sleep(100)


    Case $msg = $aus
    GUICtrlDelete($tab2)
    GUICtrlSetState($aus, $GUI_HIDE)
    GUICtrlSetState($an, $GUI_SHOW)
    GUICtrlSetState($tab0,$GUI_SHOW)
    GUICtrlSetState($label2_1, $GUI_HIDE)

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

    EndSelect

    Wend

    [/autoit]

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

    Einmal editiert, zuletzt von Crazy-A (16. August 2008 um 21:02)

  • So?

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>

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

    $gui = GUICreate("Beispiel",410,410) ; erstellt ein GUI-Fenster welches mittig ausgerichtet wird

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

    $tab=GUICtrlCreateTab (5,105, 400,300)
    $an = GUICtrlCreateButton("an", 50,50,50,50)
    $aus = GUICtrlCreateButton("aus", 50,50,50,50)
    GUICtrlSetState($aus, $GUI_HIDE)

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

    ; Tab 1
    $tab0=GUICtrlCreateTabitem ("Grund 1")
    GUICtrlSetState(-1,$GUI_SHOW); Dieser Tab wird beim Programmstart aufgerufen

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

    ; Tab 2
    $tab1=GUICtrlCreateTabitem ("Grund 2")
    $label1_1 = GUICtrlCreateLabel("Darf nur bei Grund 2 erscheinen",150,150,150,150)
    GUISetFont(9, 300)

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

    ; Tab 3
    ;$tab2=GUICtrlCreateTabitem ("Grund 3")
    ;$label2_1 = GUICtrlCreateLabel("Darf nur bei Grund 3 erscheinen",150,150,150,150)
    ;GUICtrlSetBkColor(-1,0xFCFCFE) ; Grün
    ;GUISetFont(9, 300)

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

    ;GUICtrlSetState ($tab2,$GUI_HIDE)
    ;GUICtrlSetState($label2_1, $GUI_HIDE)

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

    GUISetState ()

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

    ; die GUI läuft bis sie geschlossen wird
    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $an
    $tab2=GUICtrlCreateTabitem ("Grund 3")
    $label2_1 = GUICtrlCreateLabel("Darf nur bei Grund 3 erscheinen",150,150,150,150)
    GUICtrlSetBkColor(-1,0xFCFCFE) ; Grün
    GUISetFont(9, 300)
    GUICtrlSetState($an, $GUI_HIDE)
    GUICtrlSetState($label2_1, $GUI_SHOW)
    GUICtrlSetState($aus, $GUI_SHOW)
    GUICtrlSetState($tab2,$GUI_SHOW)
    Sleep(100)


    Case $msg = $aus
    GUICtrlDelete($tab2)
    GUICtrlSetState($aus, $GUI_HIDE)
    GUICtrlSetState($an, $GUI_SHOW)
    GUICtrlSetState($tab0,$GUI_SHOW)
    GUICtrlSetState($label2_1, $GUI_HIDE)

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

    EndSelect

    Wend

    [/autoit]
  • Du müsstest, wenn du das Tab3-Control löschst/erstellst auch alle darin befindlichen Controls löschen/erstellen.
    Und das mit jedem AN/AUS-Buttonklick erneut.

    Wie wärs mit folgendem Vorschlag:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>

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

    Global $Tab[4], $Button, $msg, $TabState=True, $CtrlStart, $CtrlEnd

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

    GUICreate("Test",400,300)
    $Button=GUICtrlCreateButton("Aus",10,20,40,20)
    GUICtrlCreateTab(10,60,380,230)
    $Tab[1]=GUICtrlCreateTabItem("Tab 1")
    GUICtrlCreateLabel("Ist nur in Tab1",20,100)
    $Tab[2]=GUICtrlCreateTabItem("Tab 2")
    GUICtrlCreateLabel("Ist nur in Tab2",20,100)
    $Tab[3]=GUICtrlCreateTabItem("Tab 3")
    $CtrlStart=GUICtrlCreateDummy()
    GUICtrlCreateLabel("Ist nur in Tab3",20,100)
    GUICtrlCreateInput("Blablabla",20,130)
    ;usw...
    $CtrlEnd=GUICtrlCreateDummy()
    GUISetState()


    While 1
    $msg=GUIGetMsg()
    If $msg=-3 Then Exit
    If $msg=$Button Then
    $TabState= Not $TabState
    _SetTabState()
    EndIf
    Sleep(5)
    WEnd

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

    Func _SetTabState()
    If $TabState=True Then
    GUICtrlSetData($Button,"Aus")
    For $i=$CtrlStart+1 to $CtrlEnd-1
    GUICtrlSetState($i,$GUI_SHOW)
    Next
    Else
    GUICtrlSetData($Button,"An")
    For $i=$CtrlStart+1 to $CtrlEnd-1
    GUICtrlSetState($i,$GUI_HIDE)
    Next
    EndIf
    EndFunc

    [/autoit]


    Löscht NICHT das TabItem, sondern versteckt nur die Controls...

    lgE

    • Offizieller Beitrag

    auch nicht schön, aber evtl. hilft es.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>

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

    $gui = GUICreate("Beispiel", 410, 410) ; erstellt ein GUI-Fenster welches mittig ausgerichtet wird
    $tab = GUICtrlCreateTab(5, 105, 400, 300)
    $anAus_B = GUICtrlCreateButton("an", 50, 50, 50, 50)
    Global $status = False
    ; Tab 1
    $tab0 = GUICtrlCreateTabItem("Grund 1")
    GUICtrlSetState(-1, $GUI_SHOW); Dieser Tab wird beim Programmstart aufgerufen
    ; Tab 2
    $tab1 = GUICtrlCreateTabItem("Grund 2")
    $label1_1 = GUICtrlCreateLabel("Darf nur bei Grund 2 erscheinen", 150, 150, 150, 150)
    GUISetFont(9, 300)
    GUICtrlCreateTabItem("")
    GUISetState()

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

    ; die GUI läuft bis sie geschlossen wird
    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $anAus_B
    If $status = False Then
    $tab2 = GUICtrlCreateTabItem("Grund 3")
    $label2_1 = GUICtrlCreateLabel("Darf nur bei Grund 3 erscheinen", 150, 150, 150, 150)
    GUICtrlSetBkColor(-1, 0xFCFCFE) ; Grün
    GUISetFont(9, 300)
    GUICtrlSetState($tab2, $GUI_SHOW)
    GUICtrlSetData($anAus_B, 'Aus')
    Else
    GUICtrlDelete($tab2)
    GUICtrlDelete($label2_1)
    GUICtrlSetData($anAus_B, 'An')
    EndIf
    $status = Not $status
    EndSelect
    WEnd

    [/autoit]

    Mega

  • Xenobiologist (Mega)
    Ist so super !!!

    Greek
    Zeile 62 machte Probleme mit tab0 und tab1 da waren die labels übereinander.

    eukalyptus
    Gute Idee, aber ich möchte den Tab versteckt haben.

    Euch allen vielen lieben Dank.

    LG, Crazy-A(lina).

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr