1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Clust3r

Beiträge von Clust3r

  • GUI - Möglichkeit mit TAB durch die eigenen Controls zu springen

    • Clust3r
    • 14. Juni 2023 um 16:51
    Zitat von water

    Leertaste selektiert eine Checkbox

    Das isses ! Vielen vielen Dank !

  • GUI - Möglichkeit mit TAB durch die eigenen Controls zu springen

    • Clust3r
    • 14. Juni 2023 um 16:39

    Vielen dank Oscar !

    Funktioniert soweit ganz gut nur lässt sich die Checkbox leider nicht über die Tastatur mittels Enter auswählen. Bräuchte da irgendwas in die Richtung womit man alles über Tastatur ansteuern könnte

  • GUI - Möglichkeit mit TAB durch die eigenen Controls zu springen

    • Clust3r
    • 14. Juni 2023 um 13:41
    Zitat von BugFix

    Setze den Font für die GUI mit GuiSetFont, gilt dann für alle Ctrl.

    Da ist es aber dann leider so das die eine Combobox mit dem jeweiligen Text komplett markiert ist:

    1 hosted at ImgBB
    Bild 1 gespeichert in ImgBB
    ibb.co


    C
    #include <Date.au3>
    #include <MsgBoxConstants.au3>
    #include <Array.au3>
    #include <File.au3>
    #include <String.au3>
    #include <Crypt.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiListView.au3>
    #include <WindowsConstants.au3>
    #include <GuiComboBox.au3>
    
    
    Opt("GUIResizeMode",$GUI_DOCKALL)
    
    ;---Array enthält von allen Controls das Handle
    $MaxControls = 100
    Global $aHWND[$MaxControls][7]
    
    ;---benutzte Schriftart in den Fenstern
    $font = "Arial"
    ;---Hintergrundfarbe
    $BkColor = 0xF0F8FF
    
    CreateGUI()
    
    
    
    Func CreateGUI()
       Local $CountProgressbar
       Local $aFileContent[5]
    
       ;Variable für ID von Configgroup
       Local $Configgroup = ""
    
       Local $LastLines = 0
    
       $hGUI = GUICreate("Test", 850, 350, 100, 10, -1)
       GUISetState(@SW_SHOW)
       GUISetBkColor($BkColor) ;Hintergrundfarbe ändern
       GUISetFont(9, 420, 0, $font) ; Schrift ändern
    
       ;---Erstelle "Menü"
       $idFileMenu = GUICtrlCreateMenu("Datei")
       $idOpenitem = GUICtrlCreateMenuItem("CSV-Datei importieren..", $idFileMenu)
       $idExititem = GUICtrlCreateMenuItem("Beenden", $idFileMenu)
    
       $bCreate = GUICtrlCreateButton("Erstelle Computer",560,275,125,35)
       $bClose = GUICtrlCreateButton("Beenden",700,275,125,35)
    
       $idLabelPXEAll = GUICtrlCreateLabel("Alle Computer für PXE aktivieren: " ,575,250)
       $idCheckbox = 0
    
       GUICtrlSetState ($idLabelPXEAll, $GUI_HIDE)
    
       GUICtrlCreateLabel("Hostname:",5,10)
       $aHWND[0][0] = GUICtrlCreateInput("",5,30,105,20)
    
       GUICtrlCreateLabel("MAC:",130,10)
       $aHWND[0][1] = GUICtrlCreateInput("",130,30,105,20)
    
       GUICtrlCreateLabel("Konfiguration:",255,10)
       $aHWND[0][2] = GUICtrlCreateCombo("", 255, 30, 200, 20)
       
        GUICtrlSetData($aHWND[0][2], "Test1|Test2")
    
       GUICtrlCreateLabel("Hardware Typ:",475,10)
       $aHWND[0][3] = GUICtrlCreateCombo("Desktop",475, 30, 130, 20)
       GUICtrlSetData($aHWND[0][3], "Laptop|Virtual Hardware")
       ;
    
       GUICtrlCreateLabel("Altgerät:",625,10)
       $aHWND[0][4] = GUICtrlCreateInput("",625,30,105,20)
    
       $aHWND[0][5] = GUICtrlCreateButton("...",735,30,15,15)
    
       GUICtrlCreateLabel("PXE Aktivierung:",750,10)
       $aHWND[0][6] = GUICtrlCreateCheckbox("", 780, 32, 15, 15)
    
    
       for $counter = 1 to UBound($aHWND)-1
          $aHWND[$counter][5] = -1
       Next
    
       GUISetState(@SW_SHOW)
    
       While 1
          $nMsg = GUIGetMsg()
    
            Switch $nMsg
                Case $GUI_EVENT_CLOSE, $idExititem
                    ExitLoop
                Case $idOpenitem
                Case $bCreate
                Case $idCheckbox
    
                Case $bClose
                   Exit
            EndSwitch
    
    
       WEnd
    
    EndFunc
    Alles anzeigen

    Und die Checkbox kann leider nicht per TAB ausgewählt werden

  • GUI - Möglichkeit mit TAB durch die eigenen Controls zu springen

    • Clust3r
    • 14. Juni 2023 um 12:11
    Zitat von BugFix

    2. Du hast auf deiner GUI nur 2 Ctrl - die beiden Button. Also ist die Tab-Sprunggeschichte OK.

    3. Problem: Du hast in der Funktion eine weiter GUI (??- wozu) erstellt und DANACH die anderen Ctrl. Somit sind diese Ctrl zur zuletzt erstellten GUI gehörig.

    Danke das war tatsächlich der springende Punkt. Wieso ich das mit der zweiten GUI gemacht habe kann ich dir leider nicht beantworten. Das Tool ist knapp 8 Jahre alt und muss jetzt nochmal erweitert werden.

    Zitat von BugFix

    Räum erst mal auf:

    - Globale Variablen (alle ID der GUI !!) ausserhalb der Funktion deklarieren

    - Msg-Loop separat

    - Dim nicht nutzen - entweder Local (in Funktionen) oder Global

    Ich weiß, schlechter Style und so, aber das Tool ist noch wesentlich komplexer als der gezeigte Codeausschnitt. Das alles komplett anzupassen lasse ich jetzt mal außen vor da es ja 8 Jahre super gelaufen ist und den Aufwand nicht ganz rechtfertigen würde. Ich hoffe du verzeihst es mir.


    Eine Frage habe ich noch und zwar wie kann ich für alle erstellten Controls eine bestimmte Schrift setzen ?

    Oder muss ich das für jedes einzelne Control extra mittels GUICtrlSetFont() machen ?

  • GUI - Möglichkeit mit TAB durch die eigenen Controls zu springen

    • Clust3r
    • 14. Juni 2023 um 10:19

    So habe hier mal den Code für euch runtergebrochen auf das eigentliche Problem.


    C
    #include <Date.au3>
    #include <MsgBoxConstants.au3>
    #include <Array.au3>
    #include <File.au3>
    #include <String.au3>
    #include <Crypt.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiListView.au3>
    #include <WindowsConstants.au3>
    #include <GuiComboBox.au3>
    
    
    Opt("GUIResizeMode",$GUI_DOCKALL)
    
    ;---Array enthält von allen Controls das Handle
    $MaxControls = 100
    Dim $aHWND[$MaxControls][7]
    
    
    CreateGUI()
    
    
    
    Func CreateGUI()
       Dim $CountProgressbar
       Dim $aFileContent[5]
    
       ;Variable für ID von Configgroup
       Dim $Configgroup = ""
    
       Dim $LastLines = 0
    
       $hGUI = GUICreate("Test", 850, 350, 100, 10, -1)
       GUISetState(@SW_SHOW)
    
       ;---Erstelle "Menü"
       $idFileMenu = GUICtrlCreateMenu("Datei")
       $idOpenitem = GUICtrlCreateMenuItem("CSV-Datei importieren..", $idFileMenu)
       $idExititem = GUICtrlCreateMenuItem("Beenden", $idFileMenu)
    
       $bCreate = GUICtrlCreateButton("Erstelle Computer",560,275,125,35)
       $bClose = GUICtrlCreateButton("Beenden",700,275,125,35)
    
       $idLabelPXEAll = GUICtrlCreateLabel("Alle Computer für PXE aktivieren: " ,575,250)
       $idCheckbox = 0
    
       GUICtrlSetState ($idLabelPXEAll, $GUI_HIDE)
    
       $h_GUIC = GUICreate("", 850, 240, 0, 0, $WS_CHILD,0,$hGUI)
       GUICtrlCreateLabel("Hostname:",5,10)
       $aHWND[0][0] = GUICtrlCreateInput("",5,30,105,20)
    
       GUICtrlCreateLabel("MAC:",130,10)
       $aHWND[0][1] = GUICtrlCreateInput("",130,30,105,20)
    
       GUICtrlCreateLabel("Konfiguration:",255,10)
       $aHWND[0][2] = GUICtrlCreateCombo("", 255, 30, 200, 20)
       
        GUICtrlSetData($aHWND[0][2], "Test1|Test2")
    
       GUICtrlCreateLabel("Hardware Typ:",475,10)
       $aHWND[0][3] = GUICtrlCreateCombo("Desktop",475, 30, 130, 20)
       GUICtrlSetData($aHWND[0][3], "Laptop|Virtual Hardware")
    
       GUICtrlCreateLabel("Altgerät:",625,10)
       $aHWND[0][4] = GUICtrlCreateInput("",625,30,105,20)
    
       $aHWND[0][5] = GUICtrlCreateButton("...",735,30,15,15)
    
       GUICtrlCreateLabel("PXE Aktivierung:",750,10)
       $aHWND[0][6] = GUICtrlCreateCheckbox("", 780, 32, 15, 15)
    
    
       for $counter = 1 to UBound($aHWND)-1
          $aHWND[$counter][5] = -1
       Next
    
       GUISetState(@SW_SHOW)
    
       While 1
          $nMsg = GUIGetMsg()
    
            Switch $nMsg
                Case $GUI_EVENT_CLOSE, $idExititem
                    ExitLoop
                Case $idOpenitem
                Case $bCreate
                Case $idCheckbox
    
                Case $bClose
                   Exit
            EndSwitch
    
    
       WEnd
    
    EndFunc
    Alles anzeigen
  • GUI - Möglichkeit mit TAB durch die eigenen Controls zu springen

    • Clust3r
    • 14. Juni 2023 um 10:02

    Hallo zusammen,

    ich habe folgende Thematik, bei der mir hoffentlich jemand weiterhelfen kann:

    Habe ein kleines GUI Tool erstellt welches ein paar Textboxen, Comboboxen und zwei Buttons enthält.

    Es wäre schön wenn man mittels TAB durch die jeweiligen Controls in der GUI springen könnte.

    Aktuell wird nur zwischen den zwei Buttons hin und her gesprungen wenn ich die TAB Taste drücke.


    VG

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™