entweder habe ich es nie gewußt, oder aber total vergessen. Wie kann man ein GET aktivieren, von dem man eigentlich nur die Variable weiß, auf die das GET gelegt wurde? Ich möchte gerne bei bestimmten Ergebnissen zurück zu einem vorhergegangenem GET. Unter GUI macht man das ja einfach mit SetAppFocus(name).
@ 1,1 GET feld1
@ 2,1 GET feld2 VALID pruefen()
read
**********************************
function pruefen()
falsch := .T.
if falsch
// hier jetzt zurück zu feld1
endif
return .T.
Manfred hat geschrieben:entweder habe ich es nie gewußt, oder aber total vergessen. Wie kann man ein GET aktivieren, von dem man eigentlich nur die Variable weiß, auf die das GET gelegt wurde? Ich möchte gerne bei bestimmten Ergebnissen zurück zu einem vorhergegangenem GET. Unter GUI macht man das ja einfach mit SetAppFocus(name).
@ 1,1 GET feld1 NAME 1
@ 2,1 GET feld2 VALID pruefen()
read
**********************************
function pruefen()
falsch := .T.
if falsch
GET RESTART NAME 1 // hier jetzt zurück zu feld1
endif
return .T.
hm, keine Ahnung. Sowas habe ich noch nie gesehen. Wo steht das mit dem GET RESTART? Ich habe mir mal die ganzen Get Funktionen angesehen, aber irgendwie verwirrt mich das alles ein wenig. Es ergibt nicht das, was ich denke, was es ergeben sollte.
wie schon erwähnt, so ähnlich mache ich es schon. Es scheint dann keine andere Möglichkeit zu geben. Aber damit kann ich ja auch nicht so einfach ein vorheriges GET "anspringen".
wieder was dazugelernt. Die ganzen Get Funtionen scheinen wohl nur im Programm selbst zu klappen. In der VX im Debugger anscheinend nicht. Kein Wunder dass ich nichts ordentliches zurückbekomme.
Manfred hat geschrieben:wieder was dazugelernt. Die ganzen Get Funtionen scheinen wohl nur im Programm selbst zu klappen. In der VX im Debugger anscheinend nicht. Kein Wunder dass ich nichts ordentliches zurückbekomme.
... ne bei mir geht es auch im Debugger ( 2.0.338 Pre-Release )
wie schon gesagt sollte es kein Problem sein. ich springe nach dem 2nd GET auf das 4th, lasse also das 3th GET aus.
PROCEDURE Main()
LOCAL a := 10
LOCAL b := 20
LOCAL c := 30
LOCAL d := 40
LOCAL GETLIST := {}
CLS
@ 10,10 GET a
@ 11,10 GET b VALID MyFunc("b",GETLIST)
@ 12,10 GET c
@ 13,10 GET d
READ
WAIT
RETURN
FUNCTION MyFunc(cVar,aGet)
LOCAL nPosi := 0
LOCAL oGet
ALTD()
DO CASE
CASE cVar = "a"
CASE cVar = "b"
nPosi := ASCAN(aGet,{|x| x:name = "d" } )
IF nPosi > 0
oGet := aGet[nPosi]
GetActive(oGet)
ENDIF
CASE cVar = "c"
CASE cVar = "d"
ENDCASE
RETURN .T.
komisch, wenn ich im Debugger auf der Commandzeile g:= getactive() eingebe, dann bekomme ich NIL zurück. Wenn ich es im Code angebe, dann bekomme ich das Get zurück.
ich habe Build 430.
Wenn ich im Debugger GetListPos() eingebe, dann bekomme ich 0 zurück, im Code die Stelle.
Im Debugger auf der Consolenebene. Also von Hand eingetippt. Wie ich es weiter oben erwähnt hatte. Im Code im Debugger angezeigt klappt es bei mir auch.
ja Jimmy, das lerne ich auch immer wieder. aber ich bin ja zuversichtlich, dass es doch klappen könnte. Wozu ist denn sonst auch ein Debugger da, wenn man sowas nicht machen kann. Ich will ja nicht alles fest verdrahten. das soll ja on the fly machbar sein.
Aber erledigt ist es noch nicht. Vielleicht hat ja doch noch jemand Erkenntnisse, die weiterhelfen könnten.