DCGET und Tabstop [ERLEDIGT]

Moderator: Moderatoren

Antworten
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

DCGET und Tabstop [ERLEDIGT]

Beitrag von Manfred »

Hi,

ich habe ein paar Eingabefelder, die im Quelltext hintereinander stehen und alle TABSTOP haben. Sie gehören aber unterschiedlichen Parents an. Wenn ich nun im letzten Feld des einen Parent stehe und dann mit Return beende, dann wird wieder das 1.Feld im gleichen Parent angesprungen und nicht das nächste im anderen Parent. Wie kann man das ändern? Mit TABGROUP habe ich es probiert, aber das klappte nicht. Es verhielt sich alles wie ohne TABGROUP. Den TAB über LostFocus setzen finde ich keine gute Lösung.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14651
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Re: DCGET und Tabstop

Beitrag von Jan »

... und wenn Du den :killinputfocus() mit einem SetAppFocus() belegst?

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2934
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: DCGET und Tabstop

Beitrag von Wolfgang Ciriack »

Hallo Manfred,
versuch es mal mit DCGET OPTIONS NOSUPERVISE.
Viele Grüße
Wolfgang
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: DCGET und Tabstop

Beitrag von Manfred »

Jan,

und was passiert dann, wenn der Dialog zwischendurch gewechselt wird? Dann springt der Cursor raus ins nächste Feld. das ist recht unpraktisch.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14651
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Re: DCGET und Tabstop

Beitrag von Jan »

... das Du aber auch im Nachhinein noch Extrafallen einbauen mußt ... :oops:

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: DCGET und Tabstop

Beitrag von Manfred »

Es ist doch ein wenig umfangreicher, als ich gedacht hatte. Die Reihenfolge ist noch ganz anders abgelegt, deshalb klappt Wolfgangs Vorschlag nicht so wie erwartet. Es tauchen dann TABPAGES und PushButton dazwischen auf. Wie kann man denn genau in Erfahrung bringen, in welcher Reihenfolge denn alles abgelegt wurde? Geht das über die Childlist des Dialogfensters? Auf jeden Fall muß ich dann wohl daran irgendwas vorher genau beachten, wie ich es alles in welcher Reihenfolge verpacke.

Ach, wie habe ich den Textbildschirm geliebt. :love7:
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2934
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: DCGET und Tabstop

Beitrag von Wolfgang Ciriack »

Hallo Manfred,
Wie kann man denn genau in Erfahrung bringen, in welcher Reihenfolge denn alles abgelegt wurde?
Schau dir deinen Code an :D :lol:
Und nimm die Pushbuttons, etc. zwischen den einzelnen TABGROUP XBP_BEGIN_GROUP, XBP_WITHIN_GROUP, XBP_END_GROUP heraus.
Viele Grüße
Wolfgang
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: DCGET und Tabstop

Beitrag von Manfred »

Hi Wolfgang
Wolfgang Ciriack hat geschrieben:Hallo Manfred,

Schau dir deinen Code an :D :lol:
Und nimm die Pushbuttons, etc. zwischen den einzelnen TABGROUP XBP_BEGIN_GROUP, XBP_WITHIN_GROUP, XBP_END_GROUP heraus.
das hatte ich ja gemacht. Es sind alle Eingabefelder direkt hintereinander durchprogrammiert. Und mit TABGROUP_XXX arbeite ich auch nicht, bzw. hatte es bei den Eingabefeldern mal versucht, hat aber nichts gebracht.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Bertram Hansen
Foren-Moderator
Foren-Moderator
Beiträge: 1015
Registriert: Di, 27. Sep 2005 8:55
Wohnort: 51379 Leverkusen
Hat sich bedankt: 28 Mal
Danksagung erhalten: 20 Mal
Kontaktdaten:

Re: DCGET und Tabstop

Beitrag von Bertram Hansen »

Hallo Manfred,

ich habe bei mir auch solche "Anordnungen" und es funktioniert bei mir mit einem kleinen Zusatztrick.

Versuche bitte mal im letzten Feld des jeweiligen Parents die [TAB]-Taste oder im ersten Feld des jeweiligen Parents die [SH]+[TAB]-Taste zu drücken. Erfolgt dann ein korrekter Feldwechsel?
Falls das einwandfrei funktioniert, dann könntest Du in Deinem Dialog einen HANDLERBLOCK hinzufügen, der diese Tasten simuliert.

Codeauszug:

Code: Alles auswählen

/* ------------------------- */
/* Allgemeine Handlerblock Function für DCREAD GUI 
*/              
FUNCTION HB_all_list ( nEvent, mp1, mp2, oXbp, oDlg, aGetList, aRef, lOk )
   LOCAL cRet := DCGUI_NONE, oOldApp
   
   IF nEvent = xbeP_Keyboard
      // Anfang der Tastaturmanipulation!
      // (Gruppeneffekt = mit Pfeil runter, Pfeil hoch oder Enter bleibt der Fokus innerhalb einer DCGROUP. Nur mit der TAB-Taste komme ich
      // in das Eingabefeld der nächsten Gruppe) 
      // Um den Gruppeneffekt zu deaktieren werden hier bei bestimmten Tastatureingaben andere Events gesendet.  
      IF mp1 == xbeK_RETURN
         IF oXbp != NIL .AND. UPPER(oXbp:ClassName()) != "DC_XBPPUSHBUTTON" 
            cRet := DCGUI_IGNORE
            PostAppEvent( xbeP_Keyboard, xbeK_TAB, ,oXbp ) 
         ENDIF   
         
      ELSEIF mp1 == xbeK_DOWN
         IF oXbp != NIL .AND. UPPER(oXbp:ClassName()) != "DC_XBPCOMBOBOX"       
            cRet := DCGUI_IGNORE
            PostAppEvent( xbeP_Keyboard, xbeK_TAB, ,oXbp ) 
         ENDIF   
         
      ELSEIF mp1 == xbeK_UP
         IF oXbp != NIL .AND. UPPER(oXbp:ClassName()) != "DC_XBPCOMBOBOX"       
            cRet := DCGUI_IGNORE
            PostAppEvent( xbeP_Keyboard, xbeK_SH_TAB, ,oXbp ) 
         ENDIF   
      // Ende der Tastaturmanipulation.  
         
      // Dialog beenden
      ELSEIF mp1 == xbeK_ALT_F4
         cRet := DCGUI_EXIT_ABORT                 
      ENDIF   
   ENDIF
   
RETURN cRet
Weiterhin benutzte ich noch die Eigenschaft ENTERTAB bei DCGETOPTION .
:wave:
Gruß Bertram
http://www.tobax.de
Mitglied der XUG Cologne
Mitglied der XUG Osnabrück
Beisitzer des Deutschsprachige Xbase-Entwickler e.V.

Solange Kakaobohnen an Bäumen wachsen ist Schokolade Obst!
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: DCGET und Tabstop

Beitrag von Manfred »

Es sieht folgendermaßen aus:

1) Die Eingabefelder sind nacheinander programmiert im Code.
2) Die Eingabefelder befinden sich in verschiedenen Parents
3) Zwischendurch wechselt ein Eingabefeld in ein nächste Eingabefeld in Tabpages
4) und da passiert es, es wird zuerst das Tabpage angesprungen und beim nächsten Return das gewünschte Eingabefeld.

Ich habe alle Eingabefelder in eine TABGROUP gepackt, aber es hilft nicht.
Ich habe den TabPages den Tabstop weggenommen, es hilft nicht
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Bertram Hansen
Foren-Moderator
Foren-Moderator
Beiträge: 1015
Registriert: Di, 27. Sep 2005 8:55
Wohnort: 51379 Leverkusen
Hat sich bedankt: 28 Mal
Danksagung erhalten: 20 Mal
Kontaktdaten:

Re: DCGET und Tabstop

Beitrag von Bertram Hansen »

Hallo Manfred,

hoffentlich verstehe ich Dich jetzt richtig. #-o Also Du möchtest gerne von dem letzten Eingabefeld einer Gruppe auf einer Tabpage in das erste Eingabefeld einer Gruppe der nächsten Tabpage mit Enter wechseln, ohne das das Tabpage zwischendurch den Focus bekommt :?:
:wave:
Gruß Bertram
http://www.tobax.de
Mitglied der XUG Cologne
Mitglied der XUG Osnabrück
Beisitzer des Deutschsprachige Xbase-Entwickler e.V.

Solange Kakaobohnen an Bäumen wachsen ist Schokolade Obst!
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: DCGET und Tabstop

Beitrag von Manfred »

Nein,

ich möchte durch die Eingabefelder springen mit RETURN, obwohl sie unterschiedliche Parents haben. Dabei kommen mir im Moment die TabPages dazwischen, welche den Parent für die anderen Eingabefelder liefern. Die ersten beiden Felder haben ein Static als Parent. Weiterhin hatte ich gerade beim letzten Eingabefeld, dass der Cursor statt auf einen Pushbutton springt, direkt die Tabpage wechselt. Alles sehr verwirrend. Wobei nur die erste Tabpage angesprungen wird und dann geht es dort mit dem ersten Eingabefeld weiter.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Bertram Hansen
Foren-Moderator
Foren-Moderator
Beiträge: 1015
Registriert: Di, 27. Sep 2005 8:55
Wohnort: 51379 Leverkusen
Hat sich bedankt: 28 Mal
Danksagung erhalten: 20 Mal
Kontaktdaten:

Re: DCGET und Tabstop

Beitrag von Bertram Hansen »

#-o :shaking2: :dontknow:
:wave:
Gruß Bertram
http://www.tobax.de
Mitglied der XUG Cologne
Mitglied der XUG Osnabrück
Beisitzer des Deutschsprachige Xbase-Entwickler e.V.

Solange Kakaobohnen an Bäumen wachsen ist Schokolade Obst!
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16508
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: DCGET und Tabstop

Beitrag von Martin Altmann »

Screenshot bitte!!!
: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.
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: DCGET und Tabstop

Beitrag von Manfred »

Moment,

ich fröddel gerade ein wenig an der Maske und den Feldern usw. herum. Ich habe eine Kleinigkeit schon entdeckt, die ich aus Unachtsamkeit gebaut habe. Dann werde ich mal weitersehen, was sich daraus entwickelt.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: DCGET und Tabstop

Beitrag von Manfred »

Hm,

das ist ja interessant. Die Felder können alle mit RETURN abgeschlossen werden. Nur, sobald ich das letzte Eingabefeld mit Return abschliesse, springt der Cursor auf die nächste Tabpage. Wenn ich aber stattdessen mit TAB abschliesse, dann springt der Cursor, wie gewollt, auf den 1.Pushbutton. :-k
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2934
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: DCGET und Tabstop

Beitrag von Wolfgang Ciriack »

Hallo Manfred,
ich habe das so gelöst, dass bei mir jede Tabpage ein GOTFOCUS {|| SetAppFocus(oFirstObjOnTabpage) } hat.
Viele Grüße
Wolfgang
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: DCGET und Tabstop

Beitrag von Manfred »

Hi Wolfgang,

das würde aber nur einen Teil des Problems lösen, nämlich den, wenn die generell 1.Tabpage angesprungen wird. Wenn ich aber mit RETURN das letzte Eingabefeld in der jeweiligen Tabpage verlasse, dann wird statt des darauffolgenden Pushbutton, die nächste Tabpage aktiviert und das ist schon wieder ein ganz anderes Kaliber. Da will ich ja zu dem Zeitpunkt gar nicht hin.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Paul
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 43
Registriert: Mi, 21. Mär 2007 15:22
Wohnort: 1230 Wien

Re: DCGET und Tabstop

Beitrag von Paul »

Hallo Manfred,

gib beim letzten dcget folgenden keyblock hinzu

KEYBLOCK {|a,b,o|IIF(a==xbeK_ENTER, PostAppEvent( xbeP_Keyboard,xbeK_TAB,,o), NIL ) }

Gruss aus Wien
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: DCGET und Tabstop

Beitrag von Manfred »

Hi Paul,

daran habe ich auch schon gedacht, aber vom reinen Verständnis her sollte sollte es ja eigentlich immer mit der RETURN Taste klappen, wenn es vorher auch geklappt hat. Also die anderen Felder mit RETURN verlassen werden können und dann jeweils das nächste Feld angesprungen wird.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16508
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: DCGET und Tabstop

Beitrag von Martin Altmann »

Manfred,
dann mach es doch bei jedem SLE dazu (oder in die Superklasse) 8)

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.
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: DCGET und Tabstop

Beitrag von Manfred »

@Wolfgang,

komisch, das habe ich ich so eingebaut, aber es klappt nicht.

Code: Alles auswählen

@ nOben,nLinks DCTABPAGE oTabPage1;
                           CAPTION "Adresse";
                              EVAL {|o| AAdd(oDialogZusatz:aTabpages,o) };
                          GOTFOCUS {|| SetAppFocus(oLagerort:oName1) };
                              SIZE DCGUI_PARENTWIDTH - 10,DCGUI_PARENTHEIGHT - nOben;
                         TABHEIGHT nTabHoehe;
                          TABWIDTH nTabBreite
Das habe ich schon des öfteren beobachtet, das ein SetAppFocus() nicht klappt. Was kann dass denn bloß sein?

PS: Ich habe gerade festgestellt, dass mit der TAB Taste alles so klappt, wie ich es haben will, nur mit RETURN nicht. Irgendwas scheint Roger da verstrubbelt zu haben!?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2934
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: DCGET und Tabstop

Beitrag von Wolfgang Ciriack »

Und deine DCGET OPTIONS ? Hast du da mal NOSUPERVISE oder ENTERTAB ausprobiert ?
Viele Grüße
Wolfgang
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: DCGET und Tabstop

Beitrag von Manfred »

Au verflixt,

ich hatte nur NOSUPERVISE probiert und das klappte nicht. ENTERTAB scheint es jetzt zu bringen auf den ersten Blick.

:roll:
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Antworten