GUI mit Child - Probleme beim Child mit Buttons u. Slider

  • Hallo,

    also ich hab einige Probleme beim Erstellen eines funktionierendes Child-Fensters...

    Die Aktion-Labels und Slider funktionieren leider nur teilweise, woraufhin ich das ganze auch noch mit .bmp's versucht habe, was aber genauso wenig zuverlässig ist...

    Mein erstes grundlegendes Problem ist, dass immer nur einer der beiden Slider halbwegs zuverlässig die Daten annimmt bzw. ausspuckt...
    Das zweite: ist das Child-Fenster, zunächst @SW_Hide und wird dann erst @SW_Show, funktioniert alles noch weniger...

    Außerdem: Gibt es eine Möglichkeit die Slider schöner darzustellen (genaueres Setzen des Knopfes und ohne rechteckige Markierung)?

    Leider schwer zu beschreiben, aber alles nötige ist im Anhang, um die Probleme zu verdeutlichen...


    Ich hoffe, dass jemand Lösungen für die Macken hat, angestrebte Funktiosweise sollte eigentlich klar sein :)


    BG Andy :)


    Spoiler anzeigen
    [autoit]

    #include <SliderConstants.au3>
    #include <WindowsConstants.au3>

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

    $Child_zuerst_on_oder_off = 1 ; 0 = off , 1 = on

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

    Opt("GUIOnEventMode", 1)

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

    $GUI = GUICreate("", 100, 100, 200, 200)
    GUICtrlSetOnEvent(GUICtrlCreateButton("Child an/aus", 10, 10), "Child_State")
    GUISetState(@SW_SHOW)

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

    GUI_Child_Erstellen()

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

    While 1
    Sleep(100)
    WEnd

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

    Func Child_State()
    If $Child_State = "Show" Then
    WinSetState($GUI_Child, "", @SW_HIDE)
    Global $Child_State = "Hide"
    ElseIf $Child_State = "Hide" Then
    WinSetState($GUI_Child, "", @SW_SHOW)
    Global $Child_State = "Show"
    EndIf
    EndFunc

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

    Func GUI_Child_Erstellen()
    Global $GUI_Child = GUICreate("", 210, 100, 310, 200, $WS_POPUP, -1, $GUI)
    GUISetBkColor(0x000000) ; ändern für bessere Sicht der Button-Grenzen
    GUISetFont(10, 100, -1, "Tahoma")


    GUICtrlCreateLabel(" - ", 5, 0, 20)
    GUICtrlSetOnEvent(-1, "Pitch_Runter")
    GUICtrlSetColor(-1, 0xFFFFFF)

    GUICtrlCreateLabel("Pitch", 37, 0, 26)
    GUICtrlSetOnEvent(-1, "Pitch_Normal")
    GUICtrlSetColor(-1, 0xFFFFFF)

    GUICtrlCreateLabel(" + ", 75, 0, 20)
    GUICtrlSetOnEvent(-1, "Pitch_Rauf")
    GUICtrlSetColor(-1, 0xFFFFFF)

    Global $Pitch_Slider = GUICtrlCreateSlider(0, 15, 100, 16, $TBS_NOTICKS)
    GUICtrlSetOnEvent(-1, "Pitch_Aendern")
    GUICtrlSetBkColor(-1, 0x000000)
    GUICtrlSetLimit(-1, 5, -5)
    GUICtrlSetData(-1, 0)


    GUICtrlCreateLabel(" - ", 111, 0, 20)
    GUICtrlSetOnEvent(-1, "Tempo_Runter")
    GUICtrlSetColor(-1, 0xFFFFFF)

    GUICtrlCreateLabel("Tempo", 136, 0, 39)
    GUICtrlSetOnEvent(-1, "Tempo_Normal")
    GUICtrlSetColor(-1, 0xFFFFFF)

    GUICtrlCreateLabel(" + ", 181, 0, 20)
    GUICtrlSetOnEvent(-1, "Tempo_Rauf")
    GUICtrlSetColor(-1, 0xFFFFFF)

    Global $Tempo_Slider = GUICtrlCreateSlider(106, 15, 100, 16, $TBS_NOTICKS)
    GUICtrlSetOnEvent(-1, "Tempo_Aendern")
    GUICtrlSetBkColor(-1, 0x000000)
    GUICtrlSetLimit(-1, 50, -50)
    GUICtrlSetData(-1, 0)


    GUICtrlSetOnEvent(GUICtrlCreatePic(@ScriptDir & "\Runter.bmp", 2, 40, 11, 12), "Pitch_Runter")
    GUICtrlSetOnEvent(GUICtrlCreatePic(@ScriptDir & "\Pitch.bmp", 15, 40, 28, 12), "Pitch_Normal")
    GUICtrlSetOnEvent(GUICtrlCreatePic(@ScriptDir & "\Rauf.bmp", 45, 40, 11, 12), "Pitch_Rauf")

    GUICtrlSetOnEvent(GUICtrlCreatePic(@ScriptDir & "\Runter.bmp", 62, 40, 11, 12), "Tempo_Runter")
    GUICtrlSetOnEvent(GUICtrlCreatePic(@ScriptDir & "\Tempo.bmp", 75, 40, 41, 12), "Tempo_Normal")
    GUICtrlSetOnEvent(GUICtrlCreatePic(@ScriptDir & "\Rauf.bmp", 118, 40, 11, 12), "Tempo_Rauf")


    If $Child_zuerst_on_oder_off = 0 Then
    GUISetState(@SW_HIDE)
    Global $Child_State = "Hide"
    Else
    GUISetState(@SW_SHOW)
    Global $Child_State = "Show"
    EndIf
    EndFunc

    Func Pitch_Runter()
    GUICtrlSetData($Pitch_Slider, GUICtrlRead($Pitch_Slider) - 0.5)
    Pitch_Aendern()
    EndFunc

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

    Func Pitch_Normal()
    GUICtrlSetData($Pitch_Slider, 0)
    Pitch_Aendern()
    EndFunc

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

    Func Pitch_Rauf()
    GUICtrlSetData($Pitch_Slider, GUICtrlRead($Pitch_Slider) + 0.5)
    Pitch_Aendern()
    EndFunc

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

    Func Pitch_Aendern()
    MsgBox(0, "", "Pitch: " & GUICtrlRead($Pitch_Slider))
    EndFunc

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

    Func Tempo_Runter()
    GUICtrlSetData($Tempo_Slider, GUICtrlRead($Tempo_Slider) - 5)
    Tempo_Aendern()
    EndFunc

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

    Func Tempo_Normal()
    GUICtrlSetData($Tempo_Slider, 0)
    Tempo_Aendern()
    EndFunc

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

    Func Tempo_Rauf()
    GUICtrlSetData($Tempo_Slider, GUICtrlRead($Tempo_Slider) + 5)
    Tempo_Aendern()
    EndFunc

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

    Func Tempo_Aendern()
    MsgBox(0, "", "Tempo: " & GUICtrlRead($Tempo_Slider))
    EndFunc

    [/autoit]