gui - 2 combos verknüpfen

  • hi,

    ich bin jetzt auch wieder auf ein problemchen gestoßen, und zwar habe ich 2 combo-boxen (drop-down) erstellt, wobei 2te box auf den inhalt der 1sten box reagieren soll.

    leider bekomme ich es nur so hin, dass er nur beim start des programmes darauf rücksicht nimmt, nicht aber wenn danach was geändert wird.

    Spoiler anzeigen
    [autoit]

    ;2nd Tab
    GUICtrlCreateTab(-1, -1, 270, 165)
    GUICtrlCreateTabItem("CD-Settings")
    ;CDType
    GUICtrlCreateLabel("Choose CD Type", 10, 30)
    $Combo = GUICtrlCreateCombo("Data-CD", 10, 50) ;<< hier soll das auswahlkriterium gezogen werden
    GUICtrlSetData(-1, "SVCD|VCD|Image")


    ;3rd Tab
    GUICtrlCreateTab(-1, -1, 270, 165)
    GUICtrlCreateTabItem("Filesettings")
    ;BurnDir
    GUICtrlCreateLabel("Choose Burning-Dir", 10, 30)
    $CreateInput = GUICtrlCreateInput("C:", 10, 50, 180)
    GUICtrlSetState(-1, $GUI_ACCEPTFILES)
    $browse = GUICtrlCreateButton("&Browse", 195, 48, 70)
    $input = GUICtrlRead(16)
    ;FileType
    GUICtrlCreateLabel("Choose Extension", 10, 90)
    $CreateCombo = GUICtrlCreateCombo("", 10, 110)
    $SetData = GUICtrlRead($Combo) ;<< hier soll die auswahl beschränkt werden
    if $SetData = "Data-CD" then
    GUICtrlSetData($CreateCombo, "*.avi|*.divx|*.divx|*.*", "*.avi")
    elseif $SetData = "SVCD" or "VCD" then
    GUICtrlSetData($CreateCombo, "*.mpg", "*.mpg")
    ElseIf $SetData = "Image" then
    GUICtrlSetData($CreateCombo, "*.nrg|*.iso|*.bin|*.cue", "*.iso")
    EndIf

    [/autoit]

    ps: ich würde auch gerne einen fortschrittsbalken einbauen, kann man das so schreiben, dass er den fortlaufenden brennvorgang anzeigt?

    • Offizieller Beitrag

    1. zu den Combos
    Das geht, aber erklär mal an einem Bsp. auf welche Änderungen in Combo1 die Combo2 wie reagieren soll.

    2. Mit der Statusbar wird schon problematischer,da du den Brennprozess ja nicht selber überwachst, sondern an nerocmd abgibst. Du könntest während des Brennvorgangs die Speicherkapazität der CD abfragen und daraus ermitteln, wie weit der Brennvorgang ist und das in der Statusbar darstellen.
    Aber ich befürchte, dass bei diesem Zugriff der Brennvorgang unterbrochen/abgebrochen wird.
    Ich schau mal, ob es da andere COM-Zugriffe gibt.

  • also die prozessbar ist nicht sooo wichtig. war nur so ne idee am rande.

    zu den comboboxen.

    also in combo 1 stehen zur auswahl: Data-CD, SVCD, VCD und Image

    in combo 2 stehen/standen generell: *.avi, *.mpg, *.iso, *.nrg, *.divx

    will ich jetzt aber zb eine image brennen (combo 1) sind einige einträge in combo 2 sinnlos (*.avi, *.mpg, *.divx)

    es sollte dann so aussehen.

    combo 1: Data-CD
    combo 2: *.avi, *.divx

    combo 1: SVCD oder VCD
    combo 2: mpg

    combo 1: image
    combo 2: *.iso, *.nrg

    • Offizieller Beitrag

    Hi,

    ein bißchen umständlich, aber ungefähr sollte es gehen:

    [autoit]

    #include <GUIConstants.au3>

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

    GUICreate("My GUI combo") ; will create a dialog box that when displayed is centered

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

    $1 = GUICtrlCreateCombo("", 10, 10)
    GUICtrlSetData(-1, "Data-CD|SVCD|VCD|Image", "Image")
    $2 = GUICtrlCreateCombo("", 10, 40)
    GUICtrlSetData(-1, "*.avi|*.mpg|*.iso|*.nrg|*", "*.divx")

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

    GUISetState()

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

    ; Run the GUI until the dialog is closed
    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    ExitLoop
    Case $1
    $auswahl = GUICtrlRead($1)
    Switch $auswahl
    Case "Data-CD"
    GUICtrlSetData($2, "")
    GUICtrlSetData($2, "*.avi|*.divX", "*.divX")
    Case "SVCD"
    GUICtrlSetData($2, "")
    GUICtrlSetData($2, "*.mpg", "*.mpg")
    EndSwitch
    EndSwitch
    WEnd

    [/autoit]

    So long,

    Mega

  • Hi,
    soll es denn nur eine ComboBox geben oder möchtest du für Daten-CD, Image usw. jeweils eine?

    Sonst schreibe das in eine 2 Dim Array und lese es dann einfach aus

    $combo[1][0] = Daten-CD
    $combo[1][1] = 2
    $combo[1][2] = *.avi
    $combo[1][3] = *.divx
    $combo[2][0] = SVCD
    $combo[2][1] = 1
    $combo[2][2] = *.mpg
    $combo[3][0] = Image
    $combo[3][1] = 2
    $combo[3][2] = *.iso
    $combo[3][3] = *.nrg

    schau dir das mal an.

    I Love Array´s ;)

    MfG
    Der_Doc

  • Hallo Doc.

    Hast Du gerade die Durchsage gehört? "DOC Arrays bitte in das Anleitungszimmer". LOL

    Nein, Du hast eine so gute Anleitung für Koda geschrieben, das ich mir gut vorstellen könnte, das Du auch eine super Anleitung für Arrays verfassen würdest. Aber immer dran denken, jeder fängt klein an und denkt da nicht gleich an die zweidemensionalen Arrays. Aber das Thema ist doch wieder was für meine "Byte-Schleuder".

    LG Lina

    Lieben Gruß,
    Alina

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

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl