ShowModal und Focus

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

Antworten
samy88

ShowModal und Focus

Beitrag von samy88 »

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
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

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.
Zuletzt geändert von brandelh am Mi, 29. Aug 2007 10:24, insgesamt 1-mal geändert.
Gruß
Hubert
samy88

hi

Beitrag von samy88 »

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
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

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:

Code: Alles auswählen

nsdlg:Create() 
Setappfocus(nsdlg:sleName) 
nsdlg:showModal() 
Aber ebenso könnte das nsdlg:showModal() den Focus gleich wieder weiterleiten aber auf was ? Leider bin ich da überfragt.
Gruß
Hubert
samy88

Beitrag von samy88 »

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
samy88

Lösung gefunden

Beitrag von samy88 »

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
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16517
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Moin,
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()
- hoffe ich zumindest! Bei mir mit Xclass++ geht das so.

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.
samy88

unbekannt

Beitrag von samy88 »

Hi Martin,

bei mir kommt auf die art und weise eine fehlermeldung die mir sagt dass die methode für das objekt unbekannt ist. in der hilfe kann ich diese methode für das sle auch nicht finden.
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16517
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

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
: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.
Günter Beyes
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 315
Registriert: Mo, 16. Okt 2006 13:04
Wohnort: Region Stuttgart

Beitrag von Günter Beyes »

Hallo samy,
oDlg:showModal( oFocusXbp )
danke für den Tipp, das ist nützlich zu wissen. Wie bist du darauf gekommen? Dokumentiert ist es ja nicht.

Viele Grüße
Günter
samy88

Beitrag von samy88 »

Hab Frank++ gefragt :D

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 :D

bin auch nur auszibildender seit 3 wochen

bin da ein bisschen überfordert
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14658
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Beitrag von Jan »

Wie jetzt? Frank++? Du hast Kontakt zu ihm? Dann bist Du ehrlich gut aufgehoben! Der Mann ist genial! Wie bist Du denn an den rangekommen?

Jan
samy88

Beitrag von samy88 »

hö? :D:D:D

kennst du den? :D

der schafft hier..

der schubi schafft auch hier
vllt kennt den jemand?!

die sind auch beide hier im forum angemeldet
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16517
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Moin,
den Schubi kennen die Berliner sogar recht gut :D

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.
samy88

Beitrag von samy88 »

ja des hat er mir auch schon gesagt...

und was isn jetzt mim Frank++?!

kennt den auch jemand? :D
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14658
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Beitrag von Jan »

Samy,

persönlich leder nicht. Aber aus diversen Xbase++-Papieren und den Newsgroup-Einträgen. War schon gewaltig, was der alles zusammengebracht hat. Und auch verständlich rübergebracht hat.

Jan
samy88

Beitrag von samy88 »

keine ahnung ob wir den selben Frank++ meinen :D
da muss ich ihn mal fragen, aber der ist gerade zu beschäftigt.
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9367
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 102 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Beitrag von Tom »

Frank G., ehemaliger Mitarbeiter von Alaska. Jeder, der sich mit Xbase++ beschäftigt, sollte ihn kennen. 8)
Herzlich,
Tom
samy88

Beitrag von samy88 »

ich beschäftige mich erst seit 3 wochen damit und kann höchstens en paar programme schreiben

wer was entwickelt hat hab ich keine ahnung von

ich hab nen anderen frank++ gemeint :D

den kennt hier warscheinlich niemand
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9367
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 102 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Beitrag von Tom »

Es gibt nur einen echten Frank++. Alle anderen, die sich so nennen, sind vielleicht Frank+/++, Frank# oder so. Aber keinesfalls Frank++. 8)
Herzlich,
Tom
samy88

Beitrag von samy88 »

hehe :)
ich glaub den spitznamen hat er sich selbst nicht gegeben. den hat er in der firma bekommen weil er hier am meisten weis denke ich mal
und da er mit vorname frank heist haben die den spitznamen für ihn vllt übernommen.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hi,

der echte Frank++ hat einen Namen, der mit Heinrich und der Größe zu tun hat :wink: mehr will ich nicht schreiben, ich weiß nicht ob es ihm Recht wäre. Früher hatte ich öffters eMail Verkehr mit ihm, aber irgendwann war er weg ... keine Ahnung warum.
Gruß
Hubert
Antworten