Auf die Idee von Commander habe ich die _MsgBox UDF von ihm noch etwas ausgeweitet. Mit _MsgBoxEx lässt sich die Anzahl der Buttons und die Beschriftung von ihnen verändern. Ich werde sie in den nächsten Tagen noch etwas verfeinern + ausbessern.
Anregungen bitte hier melden was man noch verändern bzw. verbessern könnte.
MsgBoxEx.au3 :
Spoiler anzeigen
Global $GUI_EVENT_CLOSE = -3
Global Const $ES_READONLY = 2048
Global Const $WS_VSCROLL = 0x00200000
_MsgBoxEx("Test","Dies ist ein Test Text",2,"OK|OK2")
_MsgBoxEx("Test","Dies ist ein Test Text",3,"OK|OK2|OK3",0xFF0000)
; ==========================================================================================================
; ##
; Name: _MsgBoxEx ##
; Funktion: Eine MsgBox bei der sich Farbe, Anzahl der Buttons und Beschriftung der Buttons ändern lässt. ##
; Rückgabewert : Zahl des ausgewählten Buttons Bsp. 1 = 1 Button 2 = 2 Button ##
; $Title: Titel der MsgBox. ##
; $Text: Text, der MsgBox. ##
; $Buttons: Anzahl der Buttons, wirkt sich auf die Größe der MsgBox aus. ##
; $Buttons_Names = Namen der Buttons sie werden mit einem | abgetrennt ##
; $Color: Farbe der MsgBox ##
; Author : nof@ker ##
; ==========================================================================================================
Func _MsgBoxEx($Title,$Text,$Buttons = 1,$Buttons_Names = "OK",$Color = 0xCCCCCC)
Global $Value = 0
Opt("GUIOnEventMode",1)
Global $GUI_MSGBOX=GUICreate($Title,($Buttons*100),100)
GUISetState()
GUISetBkColor($Color)
$Buttons_Splitted=StringSplit($Buttons_Names,"|")
$PosButts=0
Dim $Buttons_Create[$Buttons_Splitted[0]+1]
For $i=1 to Ubound($Buttons_Splitted,1)-1
$Buttons_Create[$i]=GUICtrlCreateButton($Buttons_Splitted[$i],$PosButts,100-25,100)
$PosButts=$PosButts+100
Next
For $i=1 to Ubound($Buttons_Create,1)-1
GUICtrlSetOnEvent($Buttons_Create[$i],"_Return")
Next
$Edit=GUICtrlCreateEdit($Text,0,0,($Buttons*100),70,$ES_READONLY+$WS_VSCROLL)
GUISetOnEvent($GUI_EVENT_CLOSE,"_Exit")
Do
Sleep(1000)
Until $Value = 1
Return $Return
EndFunc ;==>_MsgBoxEx
;Name : _Exit
; Interne Funktion
Func _Exit()
Global $Value = 1
Global $Return = 0
GuiDelete($GUI_MSGBOX)
SetError(@error,1)
EndFunc ;==> _Exit
;Name : _Return
; Interne Funktion
Func _Return()
Global $Return = @GUI_CtrlId - 2
Global $Value = 1
GUIDelete($GUI_MSGBOX)
EndFunc ;==> _Return
Dank großartiger Hilfe muss man noch sagen habe ich es letztendlich hinbekommen *freu*
Hoffe es ist nützlich und gefällt euch.
mfg nof@ker