Button verschwindet?!?(Newbie braucht hilfe^^)

  • Ich habe jetzt auf eine gui eine slider (ein bild aber das is hier egal) und 1 button draufgelegt.
    Auf der slider kann man einen wert einstellen der dann abgespeichert wird wenn man auf den button klickt...
    Soweit so gut. Jetzt zum problem
    Sobald ich die gui öffne ist alles normal, aber wennich irgendwo auf die gui klicke, egal wohin, verschwindet der button...(auch beim klicken des buttons...)
    Hier ein ausschnitt des codes:

    Spoiler anzeigen
    [autoit]


    Func Steuer_einstellung()
    GUIcreate("Steuereinstellung")
    GUIsetstate(@sw_show)
    GUIctrlcreatepic("C:\Dokumente und Einstellungen\Clemens\Desktop\Autoit\Ressources\Bilder\geldhaufen.jpg", 105,30, 200, 200)
    Global $steuerslider = GUIctrlcreateslider(105, 300)
    GUIctrlsetlimit($steuerslider, 2, 0)
    $steuerlabel = GUIctrlcreatelabel("steuern einstellen", 105, 250)
    $steuerbutton = Guictrlcreatebutton("Steuern einstellen!", 105, 350, 130)
    GUICtrlSetOnEvent($steuerbutton, "steuer_speichern")
    While 1
    Sleep(1000)
    Wend
    endfunc
    Func steuer_speichern()
    Select
    case $stadtsteuerdran = 2 Then
    $steuerstufe[2] = GUIctrlread($steuerslider)
    EndSelect
    endfunc

    [/autoit]


    Hier der ganze code:

    Spoiler anzeigen
    [autoit]


    ;ACHTUNG: !!!!! In diesem skript sind bilder die alle außer ich wahrscheinlich NICHT auf ihrem pc haben^^
    ;###########################################################################################################
    #include <GDIPlus.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    Opt("GUIOnEventMode", 1) ; Wechsle in den OnEvent Modus
    Global $p1name,$p2name, $p3name
    $p1 = "Player1"
    $p2 = "Player2"
    $p3 = "Player3"
    ;-------------------------------------------------------------------- deklaration der standardvariablen
    Global $einwohneranz[21], $minenstufe[21], $kirchenstufe[21], $militstufe[21], $tavernenstufe[21], $anzk[21], $anzrit[21], $anzkreuzrit[21]
    Global $beliebtheit[21], $steuerstufe[21]
    ;-------------------------------------------------------------------------------
    ;Intalisierung der stanardvariablen
    #Region
    For $i = 0 To 20
    $einwohneranz[$i] = 1000
    $minenstufe[$i] = 1
    $kirchenstufe[$i] = 1
    $militstufe[$i] = 1
    $tavernenstufe[$i] = 1
    $anzk[$i] = 0
    $anzrit[$i] = 0
    $anzkreuzrit[$i] = 0
    $beliebtheit[$i] = 90
    $steuerstufe[$i] = 1
    Next

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

    #EndRegion
    spieler11()
    Func vorschau()
    ;----------------------------- Vorschau anfang FUNKT NOCH NICHT^^
    ;$vorschau = GUICreate("Game", @desktopwidth, @desktopheight, 0, 0, $WS_POPUP, $WS_EX_TRANSPARENT)
    ;GUISetState()
    ;WinSetTrans ($vorschau, "", 0) ;So mach ich das Fentser transparent
    ;Sleep(2000)
    ;$vorschaupic = GUICtrlCreatePic("C:\Dokumente und Einstellungen\Clemens\Desktop\Autoit\Game\nightentertainment.jpg", 300, 200, 550, 500)
    ;Sleep(2000)
    ;spieler11()
    ;------------------------Vorschau ende
    EndFunc
    Func spieler11()
    GUIcreate($p1name & "s Zug", 800, 500)
    GUISetState()
    Guictrlcreatetab(0,0, 675, 500)
    Guictrlcreatetabitem("Stadt1")
    $info = GUICtrlCreateLabel("Stadtinformationen: " & @crlf & "Einwohneranzahl:" & $einwohneranz[0] & @crlf & "Beliebtheit: " & $beliebtheit[0] & @crlf & "Kämpfer: " & $anzk[0] & @crlf & "Ritter: " & $anzrit[0] & @crlf & "Kreuzritter: " & $anzkreuzrit[0] & @crlf & "Steuereinnahmen: " & $steuerstufe[0] * $einwohneranz[0], 20, 200)
    $naechstersp = GUIctrlcreatebutton("Nächster Spieler!", 50, 300)
    GUIctrlsetonevent($naechstersp, "spieler2")
    Guictrlcreatetabitem("Stadt2")
    $info = GUICtrlCreateLabel("Stadtinformationen: " & @crlf & "Einwohneranzahl:" & $einwohneranz[1] & @crlf & "Beliebtheit: " & $beliebtheit[1] & @crlf & "Kämpfer: " & $anzk[1] & @crlf & "Ritter: " & $anzrit[1] & @crlf & "Kreuzritter: " & $anzkreuzrit[1] & @crlf & "Steuereinnahmen: " & $steuerstufe[1] * $einwohneranz[1], 20, 200)
    GUICtrlCreateTabItem("Stadt3")
    $info = GUICtrlCreateLabel("Stadtinformationen: " & @crlf & "Einwohneranzahl:" & $einwohneranz[2] & @crlf & "Beliebtheit: " & $beliebtheit[2] & @crlf & "Kämpfer: " & $anzk[2] & @crlf & "Ritter: " & $anzrit[2] & @crlf & "Kreuzritter: " & $anzkreuzrit[2] & @crlf & "Steuereinnahmen: " & $steuerstufe[2] * $einwohneranz[2], 20, 200)
    GUIctrlcreatepic("C:\Dokumente und Einstellungen\Clemens\Desktop\Autoit\Ressources\Bilder\geldhaufen.jpg", 20, 300, 70, 70)
    $steuerbutton = GUIctrlcreatebutton("Steuern einstellen", 15, 380)
    GUIctrlcreatepic("C:\Dokumente und Einstellungen\Clemens\Desktop\Autoit\Ressources\Bilder\goldmine_gc.jpg", 515, 40, 130, 130)
    GUIctrlcreatebutton("Ausbauen!", 450, 70)
    GUIctrlsetonevent($steuerbutton, "Steuer_einstellung")
    While 1
    Sleep(1000)
    Wend
    endfunc
    Func spieler2()
    ;das kommt später
    endfunc
    Func close()
    Exit
    endfunc
    Func Steuer_einstellung()
    GUIcreate("Steuereinstellung")
    GUIsetstate(@sw_show)
    GUIctrlcreatepic("C:\Dokumente und Einstellungen\Clemens\Desktop\Autoit\Ressources\Bilder\geldhaufen.jpg", 105,30, 200, 200)
    Global $steuerslider = GUIctrlcreateslider(105, 300)
    GUIctrlsetlimit($steuerslider, 2, 0)
    $steuerlabel = GUIctrlcreatelabel("steuern einstellen", 105, 250)
    $steuerbutton = Guictrlcreatebutton("Steuern einstellen!", 105, 350, 130)
    GUICtrlSetOnEvent($steuerbutton, "steuer_speichern")
    While 1
    Sleep(1000)
    Wend
    endfunc
    Func steuer_speichern()
    Select
    case $stadtsteuerdran = 2 Then
    $steuerstufe[2] = GUIctrlread($steuerslider)
    EndSelect
    endfunc

    [/autoit]


    mfg
    @night@

  • Du meinst den Button, der unter dem Slider bei "Steuern einstellen" ist? Das liegt daran das der Slider zu hoch ist und anschließend den Button überdeckt.

    Mach den Slider in Zeile 77 so:

    [autoit]

    Global $steuerslider = GUICtrlCreateSlider(105, 300, -1, 50)

    [/autoit]
  • Mh da sind einige Fehler noch im Quelltext.

    Du hast einige Variablen net deklariert.
    Dim $stadtsteuerdran, $steuerslider
    In Zeile 86 hast du bei Case ein Then eingefügt. Das muß weg. Siehe hilfe zu case.

    Deine Abbruchbedingung ist auch net vorhanden. :)

    MfG
    Der_Doc

  • Hab den fehler:

    In der Zeile wo der Slider is, probier mal das hier:

    [autoit]

    Global $steuerslider = GUIctrlcreateslider(105, 300, 200, 20)

    [/autoit]
  • Koda ist eigl. ein super Prog.

    besonders wenn man viele Steuerelemente hat, ist es schwer diese immer so zu platzieren.
    Das geht mit Koda eigl. viel besser.

    Wegen den Funktionen, kann man ja so machen, das wenn man etwas neues mit Koda eingefügt hat, einfach diese Zeile raussucht und kopiert. ;)


    PS: @Scripter192: Hast ne PN ^^

  • die abruchbedingungen kommen später rein weil das prog das spiel noch abspeichern soll und ich das dann lieber auf einen rutsch mache^^
    thx für alle antworten
    mfg
    @night@