Fokus setzen auf XBP in modalem Fenster
Moderator: Moderatoren
- Jan
- Marvin
- Beiträge: 14651
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Fokus setzen auf XBP in modalem Fenster
Mal 'ne Anfängerfrage. Da ich aber noch nie mit modalen Fenstern gearbeitet habe, muß ich halt doch mal fragen.
Ich habe ein Programm, in dem ein Child-Fenster geöffnet wird. So lange das auf ist soll nichts anderes in dem Programm gemacht werden können als das, was das Child-Fenster anbietet. Soweit klappt das, ich habe beim :create() die beiden unterschiedlichen Parents drin stehen, und darunter eii :showModal().
Aber ich bekomme es nicht hin, das der Focus auf einem bestimmten XBPart des modalen Dialoges liegt. Das klappt immer erst nach einem Mausklick darauf.
Und ich habe in der Eventschleife ein paar Besonderheiten zur Behandlung einiger Tastaturereignisse auf XBParts eingetragen. Wie: Pushbutton löst auch bei Enter aus, nicht nur bei Space. Diese Besonderheiten wurden ebenfalls nicht an den modalen Dialog weitergeleitet.
Was mache ich da falsch? Oder denke ich falsch, und das muß so sein?
Jan
Ich habe ein Programm, in dem ein Child-Fenster geöffnet wird. So lange das auf ist soll nichts anderes in dem Programm gemacht werden können als das, was das Child-Fenster anbietet. Soweit klappt das, ich habe beim :create() die beiden unterschiedlichen Parents drin stehen, und darunter eii :showModal().
Aber ich bekomme es nicht hin, das der Focus auf einem bestimmten XBPart des modalen Dialoges liegt. Das klappt immer erst nach einem Mausklick darauf.
Und ich habe in der Eventschleife ein paar Besonderheiten zur Behandlung einiger Tastaturereignisse auf XBParts eingetragen. Wie: Pushbutton löst auch bei Enter aus, nicht nur bei Space. Diese Besonderheiten wurden ebenfalls nicht an den modalen Dialog weitergeleitet.
Was mache ich da falsch? Oder denke ich falsch, und das muß so sein?
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Wolfgang Ciriack
- 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: Fokus setzen auf XBP in modalem Fenster
Hast du auch ein SetAppFocus(oFenster) gemacht ?
Viele Grüße
Wolfgang
Wolfgang
- Jan
- 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: Fokus setzen auf XBP in modalem Fenster
Hallo Wolfgang,
nützt nichts.
Ich habe da ja ein paar verschiedene Sachen:
Den modalen Dialog
Den betreffenden XBPart
Ich muß auf jeden Fall ja irgendwie den Fokus auf den XBPart legen
Danach muß ich das oDlg:showModal() machen. Denn mit dieser Zeile stoppt ja die Ausführung, bis der modale Dialog beendet wurde. Also muß das der letzte Schritt sein. Alles andere muß vorher eingestellt sein.
Jan
nützt nichts.
Ich habe da ja ein paar verschiedene Sachen:
Den modalen Dialog
Den betreffenden XBPart
Ich muß auf jeden Fall ja irgendwie den Fokus auf den XBPart legen
Danach muß ich das oDlg:showModal() machen. Denn mit dieser Zeile stoppt ja die Ausführung, bis der modale Dialog beendet wurde. Also muß das der letzte Schritt sein. Alles andere muß vorher eingestellt sein.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Martin Altmann
- 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: Fokus setzen auf XBP in modalem Fenster
Ändere die Reihenfolge!
Mach das SetAppFocus() nach dem ShowModal()
Viele Grüße,
Martin
Mach das SetAppFocus() nach dem ShowModal()
Viele Grüße,
Martin
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.
- Jan
- 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: Fokus setzen auf XBP in modalem Fenster
Martin,
das nützt nichts! Da die Ausführung des Codes mit der Zeile oDlg:showModal() stoppt. Der kommt garnicht erst bis zu der Zeile.
Jan
das nützt nichts! Da die Ausführung des Codes mit der Zeile oDlg:showModal() stoppt. Der kommt garnicht erst bis zu der Zeile.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Jan
- 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: Fokus setzen auf XBP in modalem Fenster
Tja, wer die Forensuche zu nutzen weiß ... Ich selber ahbe vor gut einem Jahr einen anderen Trhead hier aufgemacht, wo es um die gleiche Frage ging. Die Antwort:
Dann wird der Fokus ganz sauber auf oXbp gelegt.
Bleibt noch die Frage, warum die Einstellungen in meiner Eventschleife dort nicht funktionieren ...
Jan
Code: Alles auswählen
oDlg:showModal(oCbp)
Bleibt noch die Frage, warum die Einstellungen in meiner Eventschleife dort nicht funktionieren ...
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
-
- Rekursionen-Architekt
- Beiträge: 237
- Registriert: Do, 14. Aug 2008 14:59
- Wohnort: Straelen
- Hat sich bedankt: 2 Mal
- Danksagung erhalten: 3 Mal
Re: Fokus setzen auf XBP in modalem Fenster
Hallo Jan,
die Klassenmethode :showModal() hat eine eigene interne Eventschleife. Wenn man die Haupteventschleife nutzen möchte, muss man ein nicht modales Fenster programmieren.
die Klassenmethode :showModal() hat eine eigene interne Eventschleife. Wenn man die Haupteventschleife nutzen möchte, muss man ein nicht modales Fenster programmieren.
Viele Grüße
Dieter
Was man nicht versteht, besitzt man nicht.
Dieter
Was man nicht versteht, besitzt man nicht.
- Jan
- 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: Fokus setzen auf XBP in modalem Fenster
Hallo Dieter,
Mist!
Kann man denn die interne Event-Schleife irgendwie beeinflussen? Wäre doch blöd wenn nicht, denn fast alle manipulieren die doch irgendwie. Oder?
Jan
Mist!
Kann man denn die interne Event-Schleife irgendwie beeinflussen? Wäre doch blöd wenn nicht, denn fast alle manipulieren die doch irgendwie. Oder?
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- brandelh
- Foren-Moderator
- Beiträge: 15695
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Fokus setzen auf XBP in modalem Fenster
ich setze in der CREATE() Methode des Fensters kurz vor :show()
Code: Alles auswählen
SetAppFocus(SELF) // das eigene Fenster, sonst war anfangs kein blauer Programmbalken, könnte aber schon verbessert sein...
SetAppFocus(::DasEditControl) // das gewünschte Control
Gruß
Hubert
Hubert
-
- Rekursionen-Architekt
- Beiträge: 237
- Registriert: Do, 14. Aug 2008 14:59
- Wohnort: Straelen
- Hat sich bedankt: 2 Mal
- Danksagung erhalten: 3 Mal
Re: Fokus setzen auf XBP in modalem Fenster
Hallo Jan,
ich halte meine Event-Schleifen so klein wie möglich. Das Standardverhalten von Controls (z. B. bei Drücken der Enter-Taste) wird bei mir in der :handleEvent-Methode des Controls durch Auswertung des Keyboard-Events programmiert.
ich halte meine Event-Schleifen so klein wie möglich. Das Standardverhalten von Controls (z. B. bei Drücken der Enter-Taste) wird bei mir in der :handleEvent-Methode des Controls durch Auswertung des Keyboard-Events programmiert.
Code: Alles auswählen
CASE nEvent == xbeP_Keyboard
DO CASE
CASE mp1 == xbeK_ENTER
PostAppEvent(xbeP_Keyboard,xbeK_TAB,,Self)
Viele Grüße
Dieter
Was man nicht versteht, besitzt man nicht.
Dieter
Was man nicht versteht, besitzt man nicht.
-
- Rekursionen-Architekt
- Beiträge: 237
- Registriert: Do, 14. Aug 2008 14:59
- Wohnort: Straelen
- Hat sich bedankt: 2 Mal
- Danksagung erhalten: 3 Mal
Re: Fokus setzen auf XBP in modalem Fenster
Hallo Hubert,
der bevorzugte Weg ( nach dem Create des Fensters) sollte eigentlich wie folgt sein:
der bevorzugte Weg ( nach dem Create des Fensters) sollte eigentlich wie folgt sein:
Code: Alles auswählen
SetAppWindow(oDlgModal)
SetAppFocus(oDlgModal:DasEditControl)
nRet := oDlgModal:showModal()
IF nRet == XBP_MRESULT_CANCEL
oDlgModal:destroy()
SetAppWindow(oDlgMain)
ENDIF
Viele Grüße
Dieter
Was man nicht versteht, besitzt man nicht.
Dieter
Was man nicht versteht, besitzt man nicht.