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