GET-Valid wird mit .t. nicht verlassen

Moderator: Moderatoren

Antworten
Benutzeravatar
satmax
1000 working lines a day
1000 working lines a day
Beiträge: 831
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

GET-Valid wird mit .t. nicht verlassen

Beitrag 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
Gruß
Markus
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

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

Beitrag 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.
gruss by OHR
Jimmy
Benutzeravatar
satmax
1000 working lines a day
1000 working lines a day
Beiträge: 831
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

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

Beitrag 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
Gruß
Markus
Benutzeravatar
satmax
1000 working lines a day
1000 working lines a day
Beiträge: 831
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

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

Beitrag 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
Gruß
Markus
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16502
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

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

Beitrag von Martin Altmann »

Moin,
habe das mal nach TopDown verschoben...

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Antworten