Wenn ich in den Eingabefeldern eine Eingabe mache, poppt sofort die Combobox auf und zeigt mir den Inhalt des hinterlegten Array an. Stimme die Eingabe mit einer Pos. des Array überein, ist das Element das erste in der Box. Das wird ja wohl durch den Parameter KEYDROP gesteuert. So habe ich mir das auch vorgestellt.
Das Problem: Irgendwann ist mir aufgefallen, das das nicht mehr funktioniert, wenn das Eingabefeld mehr als einmal im Programmverlauf angesprochen wird. Es funktioniert bei mir also nur dann, wenn das kpl. Programm neu gestartet wird. Wenn ich z.B. im Betrieb zwischen diesen beiden Eingabefeldern hin und her springe, poppt die Box nach der ersten Eingabe nicht mehr auf. Egal ob das Eingabefeld leer ist oder nicht. Ich kann die Box noch problemlos abrollen und sie ist auch noch mit dem Array gefüllt, aber - KEYDROP geht nur beim Programmstart. Die Picture Parameter habe ich schon mal entfernt, hat aber auch nichts genutzt.
Ist das wohl ein Bug oder macht das irgendwie einen Sinn den ich nicht erkenne ?
Gruß
Ewald
Code: Alles auswählen
@ 2.5,01 dcsay "Fach" saysize 0
@ 2.5,21 dcsay {||xfach} object oxfach saysize 50
@ 2.5,10 DCGET akopf[_KFACH] picture "@!@K" getsize 6,1.1 ;
TABSTOP ;
COMBO ;
HEIGHT 7 ;
WIDTH 70 ;
DATA afach ;
ELEMENT 3 ;
RETURN {|n|xfach:=afach[n,2],dc_getrefresh(oxfach),afach[n,1]} ;
KEYDROP ;
when {||!lsperr}
@ 2.5,65 dcsay "Aktentyp" saysize 0
@ 2.5,85 dcsay {||xakte} object oxakte saysize 40
@ 2.5,75 DCGET akopf[_KTYP] picture "@!@K" getsize 6,1.1 ;
TABSTOP ;
COMBO ;
HEIGHT 7 ;
WIDTH 70 ;
DATA aakte ;
ELEMENT 3 ;
RETURN {|n|xakte:=aakte[n,2],dc_getrefresh(oxakte),aakte[n,1]} ;
KEYDROP ;
when {||!lsperr}