Seite 1 von 1

GET-Valid wird mit .t. nicht verlassen

Verfasst: Di, 08. Okt 2013 22:05
von satmax
Ich prüfe in einem Eingabefeld (oGet ) den eingegebenen Wert via einem valid Codeblock. Im Codeblock wird dann ein Browseobjekt zur Auswahl angezeigt. Ich beende das Browseobjekt mit Enter und gebe in der Valid Function .t. zurück, Das Eingabefeld bleibt aber aktiv und ich kann das Feld nicht verlassen. Öffne ich testweise keinen Browser und gebe nur .t. zurück wird das Eingabefeld korrekt verlassen.


Gruß
Markus

Re: GET-Valid wird mit .t. nicht verlassen

Verfasst: Di, 08. Okt 2013 23:51
von AUGE_OHR
hi,

wenn du das GET Object verlässt und ein anderes "Fenster" öffnest dann solltest du das alte "Fenster" sichern und wiederherstellen.

Code: Alles auswählen

{|| myBrowse(oGET) }

FUNCTION myBrowse(oGET)
LOCAL oldFocus := SetAppFocus()
LOCAL oActive  := GetActive( oGET )
...
// anderes Fenster ... Aktion
...
   SetAppFocus(oldFocus)
RETURN .T.

Re: GET-Valid wird mit .t. nicht verlassen

Verfasst: Mi, 09. Okt 2013 6:21
von satmax
Hallo Jimmy,

das funktioniert leider nicht. Ich hatte es auch schon so änhlich implementiert:

Code: Alles auswählen

   oldFocus:=SetAppFocus()
   oDlg:disable()
   tdIsearch(13.60,65.2,aFlds,20,cLabel,'@!',,;
    ' Suche  -  Stammdaten ...',;
         0,0,,,,,,,tdSetFont('get'),,,.F.,;  // not Modal
         ,,.T.,;                                       // turn on mouse Wheel response
           tdSetColor("nDlgBg2"),,.T.)      // Dlg color for 2nd level windows

   oDlg:enable()
   SetAppFocus(oldFocus)
  // setAppFocus(oDlg)  // vorher

Wenn ich die Zeilen mit "tdIsearch(..." auskommentiere klappt es.

Gruß
Markus

gelöst: GET-Valid wird mit .t. nicht verlassen

Verfasst: Mi, 09. Okt 2013 8:59
von satmax
Es funktioniert, dazu habe ich den aufrufenden Codeblock geändert:

alt: bValid := {|oGe, nKey| chkSubFahrer(oGe, nKey, oDlg)}
neu: bValid := {|oGe, nKey|oDlg:oActvGet := NIL, chkSubFahrer(oGe, nKey, oDlg)}

Den Tip habe ich in einem Beispielprogramm von TopDown gefunden, Clayton schreibt:

...
A good solution is to nil the oActvGet before calling the popup. This deflects the
focus codeblock. The next Get to receive focus assigns itself to oActvget as normal.
...


Gruß
Markus

Re: GET-Valid wird mit .t. nicht verlassen

Verfasst: Mi, 09. Okt 2013 9:57
von Martin Altmann
Moin,
habe das mal nach TopDown verschoben...

Viele Grüße,
Martin