Leertaste selektiert eine Checkbox
Das isses ! Vielen vielen Dank !
Leertaste selektiert eine Checkbox
Das isses ! Vielen vielen Dank !
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
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:
#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
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.
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 ?
So habe hier mal den Code für euch runtergebrochen auf das eigentliche Problem.
#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
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