Hiho also ich bin immer noch bei meinem Programm das eig, vieeel zu viele Inputs hat aber naja gut
Also es geht um ControlGetFocus der ja leider nur den Classname rausgibt
Also hab ich mir quasi ein zweites 2D-Array gemacht:
Spoiler anzeigen
$i = 1
$input_farbe = True
Global $array_inputs[300][14], $class_edit[40][14]
$edit = 1
$class0 = 6
$class1 = 7
$class2 = 8
$class3 = 9
$class4 = 10
$class5 = 11
$class6 = 12
$class7 = 13
$class8 = 14
$class9 = 15
$class10 = 16
$class11 = 17
$class12 = 18
$class13 = 19
For $f = 1 To 20
$array_inputs[$i][0] = GUICtrlCreateInput("", $lb_leiste_left2, $top, $lb_leiste_width1, 20) ;Kennzeichen
$class_edit[$edit][0] = "Edit"&$class0
$array_inputs[$i][1] = GUICtrlCreateInput("", $lb_leiste_left3, $top, $lb_leiste_width2, 20) ;Flugzeugtyp
$class_edit[$edit][1] = "Edit"&$class1
$array_inputs[$i][2] = GUICtrlCreateInput("", $lb_leiste_left4, $top, $lb_leiste_width3, 20) ;Pilot
$class_edit[$edit][2] = "Edit"&$class2
$array_inputs[$i][3] = GUICtrlCreateInput("", $lb_leiste_left5, $top, $lb_leiste_width4, 20) ;Co-Pilot
$class_edit[$edit][3] = "Edit"&$class3
$array_inputs[$i][4] = GUICtrlCreateInput("", $lb_leiste_left6, $top, $lb_leiste_width5, 20) ;Startart
$class_edit[$edit][4] = "Edit"&$class4
$array_inputs[$i][5] = GUICtrlCreateInput("", $lb_leiste_left7, $top, $lb_leiste_width6, 20) ;Startplatz
$class_edit[$edit][5] = "Edit"&$class5
$array_inputs[$i][6] = GUICtrlCreateInput("", $lb_leiste_left8, $top, $lb_leiste_width7, 20) ;Landeplatz
$class_edit[$edit][6] = "Edit"&$class6
$array_inputs[$i][7] = GUICtrlCreateInput("", $lb_leiste_left9+3, $top, $lb_leiste_width8, 20, $ES_NUMBER) ;Startzeit H
$class_edit[$edit][7] = "Edit"&$class7
$array_inputs[$i][8] = GUICtrlCreateInput("", $lb_leiste_left9+38, $top, $lb_leiste_width8, 20, $ES_NUMBER) ;Startzeit M
$class_edit[$edit][8] = "Edit"&$class8
$array_inputs[$i][9] = GUICtrlCreateInput("", $lb_leiste_left10+3, $top, $lb_leiste_width9, 20, $ES_NUMBER) ;Landezeit H
$class_edit[$edit][9] = "Edit"&$class9
$array_inputs[$i][10] = GUICtrlCreateInput("", $lb_leiste_left10+38, $top, $lb_leiste_width9, 20, $ES_NUMBER) ;Landezeit M
$class_edit[$edit][10] = "Edit"&$class10
$array_inputs[$i][11] = GUICtrlCreateInput("", $lb_leiste_left11+3, $top, $lb_leiste_width10, 20, $ES_NUMBER) ;Flugzeit H
$class_edit[$edit][11] = "Edit"&$class11
$array_inputs[$i][12] = GUICtrlCreateInput("", $lb_leiste_left11+38, $top, $lb_leiste_width10, 20, $ES_NUMBER) ;Flugzeit M
$class_edit[$edit][12] = "Edit"&$class12
$array_inputs[$i][13] = GUICtrlCreateInput("", $lb_leiste_left12, $top, $lb_leiste_width11, 20) ;Bemerkungen
$class_edit[$edit][13] = "Edit"&$class13
$top = $top + 25
$i += 1
$class1 += 14
$edit += 1
Next
So die Edit&Zahl stimmen das geht auch in anderen Funktionen
Nun will ich quasi das man mit HotKeySet Pfeilrechts dann in das nächste Feld reinkommt:
genau so wie nach unten nach oben und nach links
mein ansatz:
Spoiler anzeigen
Func go_right()
Select
Case WinActive($opts_namepgr[2]&" - Seite 1")
$window = $opts_namepgr[2]&" - Seite 1"
$state = ControlGetFocus($seite1)
Case WinActive($opts_namepgr[2]&" - Seite 2")
$window = $opts_namepgr[2]&" - Seite 2"
$state = ControlGetFocus($seite2)
Case WinActive($opts_namepgr[2]&" - Seite 3")
$window = $opts_namepgr[2]&" - Seite 3"
$state = ControlGetFocus($seite3)
Case WinActive($opts_namepgr[2]&" - Seite 4")
$window = $opts_namepgr[2]&" - Seite 4"
$state = ControlGetFocus($seite4)
Case Else
$state = 0
EndSelect
$posarray = _Array2DSearch($class_edit, $state, -1, 0, 20, False, True)
If $posarray[0] <> 0 Or $posarray[0] <> -1 Then
MsgBox(0, "lol", $state)
_ArrayDisplay($posarray)
;ControlFocus($window, "",
EndIf
EndFunc
So nur wie werte ich das ganze jetzt mit dem _Array2DSearch aus???
Also es muss dann quasi nur ControlFocus($window, "", $array_inputs[$pos1][$pos2+1] sein damit es dann das rechte Feld von dem jetzigen focused^^
THX wieder mal für alle die sich mühe geben mich zu verstehn