Hallo,
wenn ein 2tes Dialogfenster aufgerufen wird (z.B. ja/nein Abfrage), welches vor einem anderen Dialogfenster liegt, wird es nicht mehr angezeigt/verliert den Focus, wenn ich auf eine andere Anwendung zugreife (z.B. Inet Browser).
Kann man irgendwo einstellen, das es solang im Vordergrund bleibt, bis die Eingabe auch erfolgt ist?
XbpDialog im Vordergrund behalten
Moderator: Moderatoren
- 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: XbpDialog im Vordergrund behalten
Eigentlich JA, wenn der richtige Owner eingestellt ist, aber die normale msgbox() nimmt immer das Fenster aus SetAppWindow().
Unterschiedliche Vorgehensweisen, je nach Fenstertyp:
Eigene Fenster abgeleitet von XbpDialog():
- siehe XbpDialog:showModal()
- siehe XbpWindow:setModalState() (2.00 ? )
- siehe XbpDialog:alwaysOnTop - kann aber unschön werden, da alles überdeckt wird.
- eigene Fenster die andere nach Vorne holen wenn Sie Fokus bekommen - nicht ganz einfach
MsgBox() und andere einfache Systemmeldungen
- entweder immer SetAppWindow() richtig setzen, oder
- auf ConfirmBox() eigene Meldungen aufbauen:
Unterschiedliche Vorgehensweisen, je nach Fenstertyp:
Eigene Fenster abgeleitet von XbpDialog():
- siehe XbpDialog:showModal()
- siehe XbpWindow:setModalState() (2.00 ? )
- siehe XbpDialog:alwaysOnTop - kann aber unschön werden, da alles überdeckt wird.
- eigene Fenster die andere nach Vorne holen wenn Sie Fokus bekommen - nicht ganz einfach
MsgBox() und andere einfache Systemmeldungen
- entweder immer SetAppWindow() richtig setzen, oder
- auf ConfirmBox() eigene Meldungen aufbauen:
Code: Alles auswählen
*-------------------------------------------------------------
Function MyMsgBox(uText,cTitel,oOwner,nStyle)
local cText,x,xMax
DEFAULT nStyle TO XBPMB_WARNING + XBPMB_MOVEABLE
// XBPMB_QUESTION Fragezeichen
// XBPMB_WARNING Warnung -> Standard MSGBOX()
// XBPMB_INFORMATION Information
// XBPMB_CRITICAL Kritische Situation
// XBPMB_APPMODAL Confirmbox ist modal in Bezug auf die Xbase++ Anwendung
// XBPMB_SYSMODAL Confirmbox ist systemweit modal
// XBPMB_MOVEABLE Confirmbox kann verschoben werden
do case
case valtype(uText) = "A" // reiner Text oder nur debugging
cText := Var2Char(uText[1])
xMax := len(uText)
for x := 2 to xMax
cText += chr(13) + Var2Char(uText[x])
next
case valtype(uText) = "C"
cText := uText
case valtype(uText) = "N"
cText := ntrim(uText)
case valtype(uText) = "D"
cText := ctod(uText)
otherwise
cText := "Parameterfehler bei MyMsgBox: "+valtype(uText)+;
" statt C, N, D oder A"+chr(13)+;
"Bitte diesen Fehler melden."
endcase
ConfirmBox(oOwner,cText,cTitel,XBPMB_OK,nStyle)
return NIL
*-------------------------------------------------------------
Function ErrBox(uText,cTitel,oOwner)
DEFAULT cTitel TO "Fehlermeldung"
// XBPMB_QUESTION Fragezeichen
// XBPMB_WARNING Warnung
// XBPMB_INFORMATION Information
// XBPMB_CRITICAL Kritische Situation
// XBPMB_APPMODAL Confirmbox ist modal in Bezug auf die Xbase++ Anwendung
// XBPMB_SYSMODAL Confirmbox ist systemweit modal
// XBPMB_MOVEABLE Confirmbox kann verschoben werden
MyMsgBox(uText,cTitel,oOwner, XBPMB_CRITICAL + XBPMB_MOVEABLE )
return NIL
*-------------------------------------------------------------
Function InfoBox(uText,cTitel,oOwner)
DEFAULT cTitel TO "Hinweis"
MyMsgBox(uText,cTitel,oOwner,XBPMB_INFORMATION + XBPMB_MOVEABLE )
return NIL
Gruß
Hubert
Hubert