ShowModal und Focus
Moderator: Moderatoren
ShowModal und Focus
Hallo,
ich öffne einen Dialog mit showmodal:
METHOD miniFaktura:neuerbenutzer()
LOCAL nsdlg
nsdlg := NeuerBenutzer():New(AppDesktop(),self)
nsdlg:miniFaktura:= ::miniFaktura
nsdlg:Create()
nsdlg:showModal()
RETURN self
und dann möchte ich den Focus im ersten Sle haben:
setappfocus(::sleName)
Mein Problem: mit showmodal geht der Focus nicht, ohne Modal geht der Focus
weis jemand wieso?
Danke im vorraus
ich öffne einen Dialog mit showmodal:
METHOD miniFaktura:neuerbenutzer()
LOCAL nsdlg
nsdlg := NeuerBenutzer():New(AppDesktop(),self)
nsdlg:miniFaktura:= ::miniFaktura
nsdlg:Create()
nsdlg:showModal()
RETURN self
und dann möchte ich den Focus im ersten Sle haben:
setappfocus(::sleName)
Mein Problem: mit showmodal geht der Focus nicht, ohne Modal geht der Focus
weis jemand wieso?
Danke im vorraus
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Hi,
wenn du die Reihenfolge in create der creare Aufrufe so abänderst, dass das SLE an erster Stelle steht, müsse diese automatisch den Focus erhalten.
Ich habe allerdings noch nie mit ShowModal gearbeitet.
wenn du die Reihenfolge in create der creare Aufrufe so abänderst, dass das SLE an erster Stelle steht, müsse diese automatisch den Focus erhalten.
Ich habe allerdings noch nie mit ShowModal gearbeitet.
Zuletzt geändert von brandelh am Mi, 29. Aug 2007 10:24, insgesamt 1-mal geändert.
Gruß
Hubert
Hubert
hi
leider hat das mit der rheinfolge nichts zu tun, ich habe sie mal abgeändert und das sle an erste stelle des creates gemacht.
aber normalerweise ist es egal an welche stelle sich das sle befindet weil ich ja durch setappfocus den focus in das sle hineinsetze
vllt muss ich den focus beim aufruf vom dialogfenster mitübebrgeben, kann das sein?
METHOD miniFaktura:neuerbenutzer()
LOCAL nsdlg
nsdlg := NeuerBenutzer():New(AppDesktop(),self)
nsdlg:miniFaktura:= ::miniFaktura
nsdlg:Create()
nsdlg:showModal()
Setappfocus(nsdlg:sleName)
RETURN self
so geht es aber leider auch nicht
aber normalerweise ist es egal an welche stelle sich das sle befindet weil ich ja durch setappfocus den focus in das sle hineinsetze
vllt muss ich den focus beim aufruf vom dialogfenster mitübebrgeben, kann das sein?
METHOD miniFaktura:neuerbenutzer()
LOCAL nsdlg
nsdlg := NeuerBenutzer():New(AppDesktop(),self)
nsdlg:miniFaktura:= ::miniFaktura
nsdlg:Create()
nsdlg:showModal()
Setappfocus(nsdlg:sleName)
RETURN self
so geht es aber leider auch nicht
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
WAS hat denn den Focus ?
Wahrscheinlich werden die Befehle NACH :showmodal() erst nach Ende
des modalen Dialoges ausgeführt. Somit müsste es eigentlich so lauten:
Aber ebenso könnte das nsdlg:showModal() den Focus gleich wieder weiterleiten aber auf was ? Leider bin ich da überfragt.
Wahrscheinlich werden die Befehle NACH :showmodal() erst nach Ende
des modalen Dialoges ausgeführt. Somit müsste es eigentlich so lauten:
Code: Alles auswählen
nsdlg:Create()
Setappfocus(nsdlg:sleName)
nsdlg:showModal()
Gruß
Hubert
Hubert
Code:
nsdlg:Create()
Setappfocus(nsdlg:sleName)
nsdlg:showModal()
geht leider auch nicht
das ist ja das problem: das modale fenster hat keinen focus außer den focus von sich selbst
also das fenster geht auf. es ist modal: das heist man kann alles was im hintergrund von der anwendung noch offen ist nicht anklicken. das fenster das aufgeht hat den focus sodass es aktiv ist.. aber kein element im fenster hat einen focus. erst wenn man tab drückt bekommt das erste sle nach der reihenfolge einen focus
nsdlg:Create()
Setappfocus(nsdlg:sleName)
nsdlg:showModal()
geht leider auch nicht
das ist ja das problem: das modale fenster hat keinen focus außer den focus von sich selbst
also das fenster geht auf. es ist modal: das heist man kann alles was im hintergrund von der anwendung noch offen ist nicht anklicken. das fenster das aufgeht hat den focus sodass es aktiv ist.. aber kein element im fenster hat einen focus. erst wenn man tab drückt bekommt das erste sle nach der reihenfolge einen focus
Lösung gefunden
METHOD miniFaktura:neuerbenutzer()
LOCAL nsdlg
nsdlg := NeuerBenutzer():New(AppDesktop(),self)
nsdlg:miniFaktura:= ::miniFaktura
nsdlg:Create()
nsdlg:showModal(nsdlg:sleName)
RETURN self
bei showModal in der Klammer einfach den Focus setzen
LOCAL nsdlg
nsdlg := NeuerBenutzer():New(AppDesktop(),self)
nsdlg:miniFaktura:= ::miniFaktura
nsdlg:Create()
nsdlg:showModal(nsdlg:sleName)
RETURN self
bei showModal in der Klammer einfach den Focus setzen
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Moin,
ist jetzt zwar zu spät, aber folgende Zeile (zwischen dem entsprechenden :new() und :create()) hätte auch geholfen:- hoffe ich zumindest! Bei mir mit Xclass++ geht das so.
Viele Grüße,
Martin
ist jetzt zwar zu spät, aber folgende Zeile (zwischen dem entsprechenden :new() und :create()) hätte auch geholfen:
Code: Alles auswählen
::sleName:SetFocus()
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.
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Hallo,
vielen Dank für die Klarstellung! Dann ist das eine Erweiterung von Xclass++ und steht (wie befürchtet) nur dort zur Verfügung.
Viele Grüße,
Martin
vielen Dank für die Klarstellung! Dann ist das eine Erweiterung von Xclass++ und steht (wie befürchtet) nur dort zur Verfügung.
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.
-
- Rekursionen-Architekt
- Beiträge: 315
- Registriert: Mo, 16. Okt 2006 13:04
- Wohnort: Region Stuttgart
Hab Frank++ gefragt
Der weiß so ziemlich alles. Ich schreib mal so schnell in stichworten auf was er zu mir gesagt hat wieso des so ist, weil merken kann man sich des sicherlich net alles, geschweigedenn zu verstehen...
ShowModal ist eine Neue Methode von Xbase++ und dies könnte man bei C:\ALASKA\XPPW32\SOURCE\SYS\xbparts.prg einsehen..
Wenn du dir da den source code ein bisschen anguckst kannst du sehen dass showmodal den focus mitgegeben bekommt oder so
bin auch nur auszibildender seit 3 wochen
bin da ein bisschen überfordert
Der weiß so ziemlich alles. Ich schreib mal so schnell in stichworten auf was er zu mir gesagt hat wieso des so ist, weil merken kann man sich des sicherlich net alles, geschweigedenn zu verstehen...
ShowModal ist eine Neue Methode von Xbase++ und dies könnte man bei C:\ALASKA\XPPW32\SOURCE\SYS\xbparts.prg einsehen..
Wenn du dir da den source code ein bisschen anguckst kannst du sehen dass showmodal den focus mitgegeben bekommt oder so
bin auch nur auszibildender seit 3 wochen
bin da ein bisschen überfordert
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Moin,
den Schubi kennen die Berliner sogar recht gut
Viele Grüße,
Martin
den Schubi kennen die Berliner sogar recht gut
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.