Guten Morgen an die Gemeinde
da ich erst seit gestern Autoit kenne und auch erst seit gestern damit rumspiele, reisst mir bitte ned glei mein Kopf runter wenn jetzt ne Noob-Frage kommt.
Wollte wissen ob man eine Messagebox unabhängig vom Parentfenster machen kann. D.h. so dass man das Parentfenster zumachen kann, die Messagebox aber bestehen bleibt.
Grund: versuche mich grade an nem Progrämmle, bei dem man benutzerdefinierte Meldungsfenster ausgeben kann. Man gibt nen Text ein, wählt das Meldungssymbol und schwupps hat man an Meldungsfenster aufm Bildschirm und das Hauptprogramm ist nemme zu sehn oder wird geschlossen (z.b. wenn ich an meim Bruder seim PC mal wieder war *Hab dein Mailprogramm wieder eingerichtet* und einfach nen OK Button drunter)
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>
#NoTrayIcon
Opt('MustDeclareVars', 1)
[/autoit][autoit][/autoit][autoit]Global $Button, $msgbox, $asMsgText, $iFlag
Global $optWarning, $optInfo, $optCritical, $optQuestion
Global $optNoIcon, $optApplication, $optSysModal, $optTaskModal, $optOK
_Main()
[/autoit][autoit][/autoit][autoit][/autoit][autoit];Grafische Oberfläche
Func _Main()
Local $TITLE, $TEXT, $Timeout
Local $BTNEXIT, $BTNPREVIEW, $MSG, $sText
; hauptfenster
GUICreate("Messagebox", 220, 350, 650, 450, -1)
;überschrift
GUICtrlCreateLabel("Title", 10, 5, 30)
$TITLE = GUICtrlCreateInput("Meldung", 10, 20, 200, 20)
GUICtrlSetTip(-1, "Die Überschrift der Messagebox")
;textfeld
GUICtrlCreateLabel("Text", 10, 50, 30)
$TEXT = GUICtrlCreateEdit("", 10, 65, 200, 50, $ES_AUTOVSCROLL + $WS_VSCROLL + $ES_MULTILINE + $ES_WANTRETURN)
GUICtrlSetState(-1, $GUI_FOCUS)
GUICtrlSetTip(-1, "Der auszugebende Text")
;icon wahl
GUICtrlCreateGroup("Icons", 10, 120, 200, 130)
$optNoIcon = GUICtrlCreateRadio("Kein Icon", 20, 140, 100, 20)
GUICtrlSetState(-1, $GUI_CHECKED)
$optWarning = GUICtrlCreateRadio("Warnung", 20, 160, 100, 20)
$optInfo = GUICtrlCreateRadio("Information", 20, 180, 100, 20)
$optCritical = GUICtrlCreateRadio("Error", 20, 200, 100, 20)
$optQuestion = GUICtrlCreateRadio("Frage", 20, 220, 100, 20)
;timeout wahl
GUICtrlCreateGroup("Timeout", 10, 255, 200, 50)
$Timeout = GUICtrlCreateInput("", 20, 275, 100, 20, $ES_NUMBER, $WS_EX_STATICEDGE)
GUICtrlCreateLabel("Sekunden", 130, 277, 50)
GUICtrlSetTip(-1, "Zeit in Sekunden, nach der die Messagebox automatisch geschlossen wird")
;button -> ausgeben
$BTNPREVIEW = GUICtrlCreateButton("&Ausgeben", 10, 312, 80)
GUICtrlSetTip(-1, "Messagebox ausgeben")
;button -> verlassen
$BTNEXIT = GUICtrlCreateButton("&Exit", 130, 312, 80)
GUICtrlSetTip(-1, "Programm schließen")
GUISetState()
[/autoit][autoit][/autoit][autoit]While 1
$MSG = GUIGetMsg()
Select
Case $MSG = $BTNEXIT Or $MSG = $GUI_EVENT_CLOSE
Exit
Case $MSG = $BTNPREVIEW
MsgBox( _SetFlag($iFlag) + 262144, GUICtrlRead($TITLE), GUICtrlRead($TEXT), GUICtrlRead($Timeout))
EndSelect
[/autoit][autoit][/autoit][autoit]WEnd
EndFunc ;==>_Main
Func _SetFlag($iFlag)
$iFlag = 0
;Icons
Select
Case GUICtrlRead($optWarning) = $GUI_CHECKED
$iFlag = $iFlag + 48
Case GUICtrlRead($optInfo) = $GUI_CHECKED
$iFlag = $iFlag + 64
Case GUICtrlRead($optCritical) = $GUI_CHECKED
$iFlag = $iFlag + 16
Case GUICtrlRead($optQuestion) = $GUI_CHECKED
$iFlag = $iFlag + 32
EndSelect
Return $iFlag
EndFunc ;==>_SetFlag
P.S. das Design will ich noch ändern, die Iconauswahl und das Timeout sollen in Menüs, so dass nur die 2 Eingabefenster zu sehen sind. Aber erstmal Funktion dann das Design.