Seite 1 von 1

Mit TAB zur nächsten Gruppe springen

Verfasst: Di, 21. Jun 2016 14:43
von satmax
Ich möchte gerne jeweils einige Eingabefelder zu einer Gruppe zusammenfassen und dann mit TAB in die jeweils nächste Gruppe springen, schaffe das aber nicht. :( Nicht mit tdDEget().

Gibt es hier noch jemanden der mit TD arbeitet?

Re: Mit TAB zur nächsten Gruppe springen

Verfasst: Di, 21. Jun 2016 20:43
von ramses
Hi

ja ich habe einige grössere Projekte auf topdown aufgebaut und arbeite weiterhin mit topdown. Wieso auch nicht?

Was du willst ist m.E. nicht möglich.

CU Carlo

Re: Mit TAB zur nächsten Gruppe springen

Verfasst: Mi, 22. Jun 2016 6:57
von brandelh
Ich arbeite zwar nicht mit TopDown, aber die Eigenschaft :tabStop hat doch jedes Control.
Wenn du nur die jeweils Gruppenerste mit .T. und den Rest mit .F. bestückst könnte das gehen, solange TD das nicht selbst verwaltet.

Re: Mit TAB zur nächsten Gruppe springen

Verfasst: Mi, 22. Jun 2016 7:04
von Herbert
Hubert, so kommst nur jeweils zu den ersten Elementen mit der Tabtaste...

Die Taborder ist leider nur eindimensional. Du musst also das Verhalten programmieren, z.B. beim WM_Killfocus auf das 1. Element deiner nächsten Gruppe springen... aber so durchbrichst die Regel, dass der Tab stets zum nächsten Element weiterspringt.
Könntest den Keycode abfangen und den Benutzer erziehen, dass er z.B. mit einer anderen Tastenkombination diesen Effekt vollziehen kann. Allerdings sind alle Tab-Kombinationen durch Windows bereits besetzt (Shift-Tab geht rückwärts, Alt-Tab springt auf ein anderes Fenster in Windows, Ctrl-Tab ist ebenso belegt), müsstest also was ganz anders nehmen.
Alternativ planzt einen Button neben das erste Element, welches bei Klick darauf den Sprung hin zur nächsten Gruppe macht, aber eben, sind immer Zwischenschritte notwendig.

Re: Mit TAB zur nächsten Gruppe springen

Verfasst: Mi, 22. Jun 2016 7:21
von satmax
Wie kann ich eigentlich das aktive Get ermitteln? Ich habe hier eine Getlist

oXbp:oParentDlg:aActiveGets

und möchte wissen welches get active ist, so in etwa:

Code: Alles auswählen

nLen:= LEN(oXbp:oParentDlg:aActiveGets[i])
FOR i = to nLen
 IF oXbp:oParentDlg:aActiveGets[i]:get:hasfocus
   exit
 endif
next
// i == Aktives get
Aber alle gets haben das Flag hasfocus auf true gesetzt.

Re: Mit TAB zur nächsten Gruppe springen

Verfasst: Mi, 22. Jun 2016 7:31
von satmax
So bekomme ich das active get:

oXbp:oParentDlg:aActiveGets:get == oXbp:get

Re: Mit TAB zur nächsten Gruppe springen

Verfasst: Mi, 22. Jun 2016 19:07
von AUGE_OHR
satmax hat geschrieben:Ich möchte gerne jeweils einige Eingabefelder zu einer Gruppe zusammenfassen und dann mit TAB in die jeweils nächste Gruppe springen, schaffe das aber nicht. :( Nicht mit tdDEget().
wenn du die SLE in einer Groupbox zusammenfasst ?

siehe dir mal c:\ALASKA\XPPW32\SOURCE\samples\solution\ShortCut\scmanage.prg an.
es ist zwar nicht genau das was du suchst aber das Prinzip könnte man dafür nehmen.