Dynamisch erstellte Buttons abfragen

  • Hallo liebe Autoit Gemeinde,

    Ich bin neu hier und hoffe dass ihr mir weiterhelfen könnt :)

    Ich bin momentan mit einem Projekt beschäftigt, das am Ende Komplett Client basierend ist.

    Was das bedeutet:

    Das soll bedeuten dass am Ende der nutzer alles über einen Client steuern bzw. abrufen kann also alle Informationen vom server bekommt und keine Daten gespeichert werden auf dem jeweiligen PC.

    Zu meinem Problem:

    Ich habe es so Programmiert, dass Buttons dynamisch erstellt werden das heißt wenn 4 Buttons gebraucht werden, dann werden auch nur 4 erstellt mit der bestimmten Beschreibung.
    Dies funktioniert auch so weit alles nur habe ich das Problem das ich diese Buttons nur im gleichem Code Sektor ansprechen bzw. abfragen kann.

    also z.B. :

    [autoit]

    While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit
    Case $Start_server Run(@ScriptDir &"\MainBotdatasBETA.exe") Call("_getConnects")
    Case $Stop_server _serverstop()
    Case $Save_btn _savedata()
    Case $Hide_btn _hideservergui()

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

    EndSwitchWEnd

    [/autoit]

    jedoch möchte ich die Buttons extern erstellen lassen und dann auch extern ansprechen in einer Funktion.

    Ich hoffe ihr versteht was ich meine ich lege mal ein bisschen code dabei damit ihr euch vorstellen könnt was ich meine...


    [autoit]

    ;Creat Buttons For $i = 0 To UBound($NumberBTN) -1 GUICtrlSetData($Edit1,GUICtrlRead($Edit1)&@CRLF&"Send to Main: SendButton") TCPSend($ConnectMainserver,"SendButton") $testvar = $testvar + 1 Do $getButton = TCPRecv($ConnectMainserver, 2048) Until $getButton <> "" ;Test
    $ButtonNames[$testvar] = $getButton
    ;End Test $BTN[$testvar] = GUICtrlCreateButton($getButton, 8, $ButttonsCord[$testvar], 129, 33, $WS_GROUP)

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

    Next

    [/autoit]


    ansteuern tue ich sie mit :

    [autoit]

    While 1 $change = GUIGetMsg() Switch $change Case $GUI_EVENT_CLOSE FileDelete(@ScriptDir & "\Loged.ini") Exit Case $BTN[0] Global $BotnameForgetdata = $ButtonNames[0] MsgBox(0,"","Tohere") TCPCloseSocket($ConnectMainserver) TCPShutdown() Sleep(500) _getDatas()
    Case $BTN[1] Global $BotnameForgetdata = $ButtonNames[1]
    Case $BTN[2] Global $BotnameForgetdata = $ButtonNames[2]
    Case $BTN[3] Global $BotnameForgetdata = $ButtonNames[3]
    Case $BTN[4] Global $BotnameForgetdata = $ButtonNames[4]
    Case $BTN[5] Global $BotnameForgetdata = $ButtonNames[5]
    Case $BTN[6] Global $BotnameForgetdata = $ButtonNames[6]
    Case $BTN[7] Global $BotnameForgetdata = $ButtonNames[7]
    Case $BTN[8] Global $BotnameForgetdata = $ButtonNames[8]
    EndSwitch WEnd

    [/autoit]

    Das kann ich aber wie gesagt nur in der selben Funktion, in der ich auch die Buttons erstellt habe, wie kann ich sie auch extern abfragen ???also in einer anderen Funktion?

    MFG
    JAV

  • Hi,


    ja, dafür brauchst du:

    Globale Variablen für die Buttons = Array

    [autoit]

    Opt('GUIOnEventMode', 1)

    [/autoit]


    und eine Funktion wo du Prüfst welcher button wurde ausgeführt mit:

    [autoit]

    @GUI_CtrlId

    [/autoit]

    Lg Kleiner