Hallo Forum Gemeinde,
hab mal wieder eine Anfängerfrage?
Kann mir bitte jemand in einfachen Worten erklären wozu oder wie ich GUICtrlCreateDummy benutze?
Danke
Gruß Co_Steffl
Hallo Forum Gemeinde,
hab mal wieder eine Anfängerfrage?
Kann mir bitte jemand in einfachen Worten erklären wozu oder wie ich GUICtrlCreateDummy benutze?
Danke
Gruß Co_Steffl
Ein Blick in die Hilfe hilft da weiter:
They cannot fire a function directly - they action their associated control which then fires the function using GUIGetMsg() or GUICtrlSetOnEvent(). If there is no suitable control available in the GUI then a dummy control can be created using GUICtrlCreateDummy.
Du kannst also unter Anderem damit Accelerators setzen, das sind praktisch in-gui Hotkeys die dann in der Messageloop abgearbeitet werden können sofern die Accelerators nicht auf den Controls selbst aktiviert werden sollen.
Hi alpines
danke erstmal. Hat einen Moment gedauert. Aber ich hab's jetzt verstanden...
Danke
Da ein Dummy ebenfalls eine CtrlID zugewiesen bekommt kann man andere Ctrl-Elemente via Offset ansprechen. (ich glaube das habe ich insgesamt nur 1x irgendwo gemacht weil es sonst nie sinnvoll war, aber der Vollständigkeit halber ein Beispielskript)
Global $hGUI = GUICreate('', 256, 256)
Global $Buttons = GUICtrlCreateDummy()
For $i = 0 To 9 Step 1
GUICtrlCreateButton($i, 10, 10 + $i * 20, 20, 20)
Next
Global $Labels = GUICtrlCreateDummy()
For $i = 0 To 9 Step 1
GUICtrlCreateEdit(0, 40, 10 + $i * 20, 100, 20, 2048)
Next
GUISetState()
Global $iMsg
While True
$iMsg = GUIGetMsg()
If $iMsg = -3 Then Exit
For $i = 1 To 10 Step 1
If $iMsg = $Buttons + $i Then GUICtrlSetData($Labels + $i, Random())
Next
WEnd
Alles anzeigen
lg
M
Hi Mars,
top, wie geil ist das denn...
Habs gerade ausprobiert. Danke
Kommt in meine Sammlung....
Gruß
GuiCtrlCreatedummy kann man auch super bei Accelerators benutzen.
Abgewandeltes Beispiel aus der Hilfe zu GUISetAccelerators:
#include <GUIConstantsEx.au3>
#include <MsgBoxConstants.au3>
Example()
Func Example()
GUICreate("Custom MsgBox", 225, 80)
GUICtrlCreateLabel("Please select a button.", 10, 10)
Local $idYes = GUICtrlCreateDummy()
Local $idNo = guictrlcreateDummy()
Local $idExit = GUICtrlCreateButton("Exit", 150, 50, 65, 25)
; Set GUIAccelerators for the button controlIDs, these being Ctrl + y and Ctrl + n
Local $aAccelKeys[2][2] = [["^y", $idYes], ["^n", $idNo]]
GUISetAccelerators($aAccelKeys)
GUISetState(@SW_SHOW) ; Display the GUI.
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
MsgBox($MB_SYSTEMMODAL, "You selected", "Close")
ExitLoop
Case $idYes
MsgBox($MB_SYSTEMMODAL, "You selected", "Yes") ; Displays if the button was selected or the hotkey combination Ctrl + y was pressed.
Case $idNo
MsgBox($MB_SYSTEMMODAL, "You selected", "No") ; Displays if the button was selected or the hotkey combination Ctrl + n was pressed.
Case $idExit
MsgBox($MB_SYSTEMMODAL, "You selected", "Exit")
ExitLoop
EndSwitch
WEnd
GUIDelete() ; Delete the GUI.
EndFunc ;==>Example
Alles anzeigen
Strg + N und Strg+Y sind dabei dann HotKeys, die du im MessageLoop abfragen kannst.