ich bin ein wenig verwirrt, vielleicht könnt Ihr mir helfen.
Es geht darum, ich schreibe ein Skript mit mehreren Schaltflächen/While´s/GUIS etc.
Es geht darum eine Haupt While schleife zu benutzen.
Und diese zu unterbrechen, um weitere schleifen ausführen zu können.
Dabei habe ich festgestellt es gibt Problem mit der Editbox (auch mit _GUICtrlRichEdit_Create) getestet ohne Erfolg.
Ablauf :
1. Script Starten
2. Menü>GUI 2> aufrufen dabei 1 While stoppen 2 While beginnen
3. GUI 1 Disablen & verstecken
4. GUI 2 Editbox ausfüllen & bearbeiten.
Ich kann zwar die Editbox auswählen und etwas rein schreiben, aber ich kann kein Backspace/Tab/entf (Sondertasten) auslösen, bis auf die Pfeiltasten für links/pfeiltasterunter und rechts/pfeiltastehoch.
Ich habe versucht den Fehler nachzustellen.
Unten ist ein Beispielscript, leider tritt dort der Fehler nicht auf.
Ich bin etwas ratlos, google zeigt mir leider nicht das was ich versuche zu finden.
Weiß jemand warum sowas passiert und wie ich diesen Fehler mit dem Control-/Editbox/ beheben kann?
Im Grunde ist das beispiel genau so von der Logik aufgebaut wie mein Hauptscript.
Wieso kann ich in meinem beispielscript. Gui2 & Editbox2 lassen sich beschreiben und edititeren wie ich möchte, dort gibt es keinen Fehler oO?
#include <StaticConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GuiButton.au3>
#include <EditConstants.au3>
#include <GuiMenu.au3>
#include <WinAPIShellEx.au3>
#include <array.au3>
Global $gWhile = True
Global $start = gui_()
Global $aMenu[3] = [$start[1][0], $start[2][0]]
Global $aEdit[2] = [$start[3][0]]
GUISetState(@SW_SHOW, $start[0][0])
While $gWhile
$aMsg = GUIGetMsg($GUI_EVENT_ARRAY)
Switch $aMsg[1]
Case $start[0][0]
Switch $aMsg[0]
Case $GUI_EVENT_CLOSE
Exit
Case $aMenu[0]
;nichts
Case $aMenu[1]
;öffne While 2 + GUI
GUISetState(@SW_hide, $start[0][0])
GUISetState(@SW_DISABLE, $start[0][0])
$gWhile=z_While($gWhile)
Case $aEdit[0]
EndSwitch
EndSwitch
If Not $gWhile = True Then ContinueLoop
WEnd
;GUIS___________________________________________________________________________
Func gui_()
Local $array[0], $aread[0]
_ArrayAdd($array, GUICreate("example_1", 545, 460, -1, -1, -1, -1))
_ArrayAdd($aread, GUICtrlRead($array[0], 1))
_ArrayAdd($array, GUICtrlCreateMenu("1"))
_ArrayAdd($aread, GUICtrlRead($array[1], 1))
_ArrayAdd($array, GUICtrlCreateMenuItem("2", $array[1], -1, 0))
_ArrayAdd($aread, GUICtrlRead($array[2], 1))
_ArrayAdd($array, GUICtrlCreateEdit("example1", 20, 162, 500, 167, -1, -1))
_ArrayAdd($aread, GUICtrlRead($array[3], 1))
Local $aArray[0]
$aArray = element_list($array, $aread, '', 2)
_ArrayDisplay($aArray, 'GUIarray')
Return $aArray
EndFunc ;==>gui_
Func gui2()
Local $array[0], $aread[0]
_ArrayAdd($array, GUICreate("example_2", 545, 460, -1, -1, -1, -1))
_ArrayAdd($aread, GUICtrlRead($array[0], 1))
_ArrayAdd($array, GUICtrlCreateEdit("example2", 20, 162, 500, 167, -1, -1))
_ArrayAdd($aread, GUICtrlRead($array[1], 1))
Local $aArray[0]
$aArray = element_list($array, $aread, '', 2)
_ArrayDisplay($aArray, 'GUIarray')
Return $aArray
EndFunc ;==>gui2
;GUIS___________________________________________________________________________
;ExtraWhile______________________________________________________________________
Func z_While($sSwitch)
Local $switch = True
Local $gui_ = gui2()
Local $aEdit[] = [$gui_[1][0]]
GUISetState(@SW_SHOW, $gui_[0][0])
While $switch = True
$aMsg = GUIGetMsg($GUI_EVENT_ARRAY)
Switch $aMsg[1]
Case $gui_[0][0]
Switch $aMsg[0]
Case $GUI_EVENT_CLOSE
GUISetState(@SW_ENABLE, $start[0][0])
GUISetState(@SW_SHOW, $start[0][0])
GUIDelete($gui_[0][0])
Return _switch_while($sSwitch, $switch)
Case $aEdit[0]
EndSwitch
EndSwitch
If Not $switch = True Then ContinueLoop
WEnd
EndFunc ;==>z_While
;ExtraWhile______________________________________________________________________
;funktionen______________________________________________________________________
Func _switch_while($lswitch, $gswitch)
$gswitch = True
$lswitch = False
Return $gswitch
EndFunc ;==>_switch_while
Func element_list($array, $aArray01, $aArray02, $iO)
Local $iCount = UBound($array)
Local $a2Dresult[$iCount][$iO]
For $i = 0 To $iCount - 1 Step 1
$a2Dresult[$i][0] = $array[$i]
$a2Dresult[$i][1] = $aArray01[$i]
If IsArray($aArray02) Then
$a2Dresult[$i][2] = $aArray02[$i]
EndIf
Next
Return $a2Dresult
EndFunc ;==>element_list
;funktionen______________________________________________________________________
Alles anzeigen
gruß mojoe