do form with ... to ...

14/11/2007 - 17:20 von mike_ao | Report spam
hi

wenn ich
DO FORM name WITH parmlist TO varname
ausführe

und im unload der form den returnparameter übergebe, dann funzt es
normalerweise. stelle ich aber schon im init fest, dass ich entweder
keine auswahl oder nur EIN unikat zur auswahl habe, möchte ich hier
schon die form "releasen" und das hier vorselektierte ergebnis
zurückgeben.

bei erfolgter auswahl mache ich folgendes:

ThisForm.Release(retvalue)
...
procedure release(retval)
ThisForm.ReturnValue = retval

procedure unload
return ThisForm.ReturnValue


bei gefundenem unikat (im init der form)
ThisForm.Release(retvalue)
return .f.

aber der return-wert (..TO varname) wird zwar im UNLOAD richtig
angezeigt aber in der TO nicht gesetzt.

wie kann man das umgehen?

mfg mike
 

Lesen sie die antworten

#1 Holger Vorberg
14/11/2007 - 18:23 | Warnen spam
Hi,

wie kann man das umgehen?



durch ein besseres Design!?

Im Ernst:
Die Form gehört gar nicht erst aufgerufen, wenn du sich nicht instanziieren
willst. Und letzteres ist ja der Fall, wenn du meinst, sie im INIT abwürgen
zu müssen. Ergo gehört die Logik, wann welcher Wert zurückgegeben werden
muss, nicht in die Form.

Mit anderen Worten: Ich würde mir eine Klasse (z.B. Custom) schaffen, die
dir den Wert liefert. Wenn die feststellt, dass nur ein Wert möglich ist,
dann liefert sie diesen Wert. Sind mehrere Werte möglich, ruft sie das
Formular auf.

Tschüß,
Holger Vorberg

Ähnliche fragen