kein Fokus auf XbpDialog

Grafische Primitive, XbaseParts und Darstellungsfragen allgemein.

Moderator: Moderatoren

Antworten
Wonderer
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 107
Registriert: Do, 06. Jul 2006 13:24

kein Fokus auf XbpDialog

Beitrag von Wonderer »

Hallo,

ich hab da mal wieder ne Frage und ein Problem.

Ich habe hier einen XbpDialog (PARENT ist AppDesktop - OWNER ist XbpCrt ) welches den Fokus nicht annimmt.

Code: Alles auswählen

oDlg := XbpDialog():new( SetAppWindow():setParent(), SetAppWindow(), {Mpos_x, Mpos_y}, {600,275}, , .F.)

oDlg:taskList := .T.
oDlg:minButton:= .T.
oDlg:maxButton:= .F.
oDlg:border   := XBPDLG_RAISEDBORDERTHIN_FIXED
oDlg:close           :={|| nEvent := xbeP_Close }
oDlg:setName( 111857 )
oDlg:create()
// snip...
// Browser anzeigen und Focus geben
oDlg:show()
oBrs:show()
SetAppWindow( oDlg )
// Fokus auf Fenster vorher?
SetAppFocus( oDlg )

//FENSTER verschwindet im Hintergrund
//WHY?!?
//Workaround?
if (SetAppWindow():setName() != 111857) .or. (SetAppFocus():setName() != 111857)
	MsgBox( "Fehler beim setzen des aktiven Fensters!" )
	SetAppWindow( oDlg )
	SetAppFocus( oDlg )
endif

SetAppFocus( oBrs )

nEvent := xbe_None

do while ...
  nEvent := AppEvent(...)
  //snip...
  oPart:handleEvent(...)
Die MessageBox wird nicht angezeigt - das heißt die Rückgabe-Variable enthält das Fenster das auch den Focus haben soll.
Aber der XbpDialog verschwindet hinter dem XbpCrt. Eigentlich kann das doch dann nur an dem Inhalt der Event-Schleife liegen?!?

mal schauen ob ich den Urheber demnächst dazu befragen kann, er meinte der ursprüngliche Code is schon mehrere Jahre alt....

EDIT: Sorry, falsches Forum - bitte verschieben nach GUI...
Zuletzt geändert von Wonderer am Fr, 15. Apr 2016 13:58, insgesamt 1-mal geändert.
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16502
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: kein Fokus auf XbpDialog

Beitrag von Martin Altmann »

Wie gewünscht verschoben.
: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.
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2823
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: kein Fokus auf XbpDialog

Beitrag von georg »

Hallo,


meine Erfahrung bei solch seltsamen Verhalten war meist, dass der Fehler vor dem Bildschirm sitzt. Versuche erst einmal, den Code drastisch zu verringern (z.B. den Browse weglassen) und prüfe, ob das Verhalten immer noch so seltsam ist. Meine Erfahrung war dann oft, dass ein einfacheres Programm sich korrekt verhält, und der Fehler in einem ganz anderen Element steckte.

Dann fällt mir auf, dass Du unterschiedliche Objekte als Parent und Owner hast - gibt es dafür einen bestimmten Grund?
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Wonderer
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 107
Registriert: Do, 06. Jul 2006 13:24

Re: kein Fokus auf XbpDialog

Beitrag von Wonderer »

georg hat geschrieben:Versuche erst einmal, den Code drastisch zu verringern (z.B. den Browse weglassen) und prüfe, ob das Verhalten immer noch so seltsam ist.
Danke für den Tipp. So mache ich das auch ab und zu..
Meine Erfahrung war dann oft, dass ein einfacheres Programm sich korrekt verhält, und der Fehler in einem ganz anderen Element steckte.
und dann läuft es plötzlich.. :)
Dann fällt mir auf, dass Du unterschiedliche Objekte als Parent und Owner hast - gibt es dafür einen bestimmten Grund?
Hmm.. Parent habe ich auf setParent vom XbpCRT gesetzt, weil sonst der XbpDialog nur innerhalb dieses Hauptfensters verschiebbar ist.
Gut möglich dass hier der Fehler liegt.

Habe mir gerade nochmal das Beispiel in den Alaska-Samples angeschaut (MDIDEMO) und den Projektleiter angefragt ob eine Umstellung
von Hybrid auf GUI bzgl.des Zeitbedarfes Ok ist. Den Beispiel-Code kann man sich wirklich gut als Vorbild nehmen :)
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2823
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: kein Fokus auf XbpDialog

Beitrag von georg »

Hallo,


das mit Parent/Owner ist OK, wenn es so gewollt ist, sollte aber nicht zu so einem Verhalten führen.
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: kein Fokus auf XbpDialog

Beitrag von AUGE_OHR »

Wonderer hat geschrieben:Hmm.. Parent habe ich auf setParent vom XbpCRT gesetzt, weil sonst der XbpDialog nur innerhalb dieses Hauptfensters verschiebbar ist.
Gut möglich dass hier der Fehler liegt.
ein XbpCrt() als "Main" ist IMHO keine gute Wahl.
vielmehr sollte man ein Top-Window, also XbpDialog(), als Main verwenden und XbpCrt() als Child.

ein "freies" Fenster benötigt AppDeskTop() als Parent und für solche brauchst du evtl. den Owner wenn z.b. nur eine Eventloop
Wonderer hat geschrieben:Habe mir gerade nochmal das Beispiel in den Alaska-Samples angeschaut (MDIDEMO) und den Projektleiter angefragt ob eine Umstellung von Hybrid auf GUI bzgl.des Zeitbedarfes Ok ist. Den Beispiel-Code kann man sich wirklich gut als Vorbild nehmen :)
ich habe keine Ahnung was dich das vermuten lässt bei den Problemen die du bislang hattest 8)
gruss by OHR
Jimmy
Antworten