Tabpage aktivieren [Erledigen]

Grafische Primitive, XbaseParts und Darstellungsfragen allgemein.

Moderator: Moderatoren

Antworten
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 13069
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Kontaktdaten:

Tabpage aktivieren [Erledigen]

Beitrag von Jan » Sa, 24. Feb 2018 11:23

Hallo,

wie kann ich codetechnisch eine Tabpage aktivieren? Ich möchte einfach sagen: Wenn das passiert, dann muß dieser oder jener Tab ausgewählt und aktiviert werden. Irgendwie bekomme ich das nicht hin.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.

Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 7284
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Kontaktdaten:

Re: Tabpage aktivieren

Beitrag von Tom » Sa, 24. Feb 2018 11:59

SetAppFocus(oTab)?
Herzlich,
Tom

Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1539
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern

Re: Tabpage aktivieren

Beitrag von Werner_Bayern » Sa, 24. Feb 2018 12:04

Servus Jan,

Code: Alles auswählen

setappfocus(oDeingewünschterTab)
es grüßt euch

Werner

Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 13069
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Kontaktdaten:

Re: Tabpage aktivieren

Beitrag von Jan » Sa, 24. Feb 2018 12:05

Hallo Tom und Werner,

das hatte ich auch gedacht. Aber macht der nicht.

Wenn das der einzig korrekte Weg ist muß es irgend was anderes im Programm geben, was das umgeht. Werd mal suchen.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.

Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1539
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern

Re: Tabpage aktivieren

Beitrag von Werner_Bayern » Sa, 24. Feb 2018 12:13

Ich habs vorher sicherheitshalber getestet, deswegen war wohl Tom schneller :)

Wie schaut Dein TabActivate-Codeblock aus? Der wird bei mir durch setappfocus() 2x (!) aufgerufen.
es grüßt euch

Werner

Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 7284
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Kontaktdaten:

Re: Tabpage aktivieren

Beitrag von Tom » Sa, 24. Feb 2018 12:14

Bei mir geht das. Wenn es nicht geht, dann liegt das möglicherweise daran, dass die Tabpage auf etwas liegt, das zuerst den Fokus bekommen muss. Oder etwas beim Fokusbekommen lässt den Fokus wieder verschwinden. Aber ich habe auf komplexen Dialogen z.B. Buttons, mit denen Einträge in derzeit nicht sichtbaren Browses auf derzeit nicht aktivierten Tabpages erzeugt werden können. Ein SetAppFocus(oTab) nach dem oZielBrowse:RefreshAll() tut dann seine Wirkung. Wie gesagt, es sei denn, SetInputFocus() oder ähnliches werden vorher aktiv. Bei Tabpages kann auch der SetSize-Codeblock eine Rolle spielen, denn eine Tabpage, die den Fokus bekommt, verändert gleichzeitig ihre Größe. Edit: Klemm doch einfach mal eine MessageBox in den SetInputFocus-Callback der Tabpage.
Herzlich,
Tom

Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 7284
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Kontaktdaten:

Re: Tabpage aktivieren

Beitrag von Tom » Sa, 24. Feb 2018 12:37

Oder SetDisplayFocus, eigentlich. :wink:
Herzlich,
Tom

Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 13069
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Kontaktdaten:

Re: Tabpage aktivieren

Beitrag von Jan » Sa, 24. Feb 2018 12:44

Hallo Tom,

was ich machen möchte: Ich habe eine Tabpage, auf der eine weitere Tabpage-Reihe liegt. Wenn ich in der zweiten Reihe auf dem n-ten Tab stehe, aber auf einen anderen Tab der ersten Reihe wechseln muß, möchte ich beim Zurückwechseln auf den ursprünglichen Tab in der ersten Reihe wieder auf den zuletzt aktiven Tab der zweiten Reihe landen. Also merke ich mir den zuletzt aktiven Tab in einer PUBLIC, und setze beim Fokuserhalt des Tabs in der ersten Reihe den Fokus auf den gemerkten in der zweiten Reihe.

War das jetzt irgendwie verständlich?

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.

Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 7284
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Kontaktdaten:

Re: Tabpage aktivieren

Beitrag von Tom » Sa, 24. Feb 2018 12:58

Ja, war es. Du musst Dir mal die SetDisplayFocus- und, wenn vorhanden, Resize-Callbacks der Tabpages anschauen. Du löst mit SetAppFocus den SetDisplayFocus-Codeblock aus. Wahrscheinlich wäre es sinnvoll, darin dann den nächsten Fokus zu setzen, nach dem Abarbeiten der vorher nötigen Aktionen natürlich. Also: Fokus auf die "Mutter"-Tabpage setzen, und bei der in SetDisplayFocus auf irgendwas reagieren - und dann den Fokus auf die Tochter setzen.
Herzlich,
Tom

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 11417
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: Tabpage aktivieren

Beitrag von AUGE_OHR » Sa, 24. Feb 2018 13:36

Jan hat geschrieben:
Sa, 24. Feb 2018 11:23
wie kann ich codetechnisch eine Tabpage aktivieren? I

Code: Alles auswählen

PostAppEvent(xbeTab_TabActivate...oTabPage)
bei einem Callback Slot für einen Codeblock steht oben die xbe* Konstante die man für PostAppEvent() benötigt um den Codeblock zu aktivieren.
gruss by OHR
Jimmy

Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 13069
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Kontaktdaten:

Re: Tabpage aktivieren

Beitrag von Jan » Sa, 24. Feb 2018 17:23

Die Kombination aus PostAppEvent(xbeTab_TabActivate, , , oTab) und SetAppFocus(oTab) macht es.

Danke für Eure Tipps.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.

Antworten