Tach zusamm.
Hab hier grad en Script, das zwar so schon gut is, aber noch zu kürzen geht.
Spoiler anzeigen
#include <GUIConstantsEx.au3>
#include <String.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("", 609, 182, -1, -1)
GUISetBkColor(0x00FF00)
Dim $Button[12]
$Button[0] = GUICtrlCreateButton("", 10, 10, 140, 40, 0)
$Button[1] = GUICtrlCreateButton("", 160, 10, 140, 40, 0)
$Button[2] = GUICtrlCreateButton("", 310, 10, 140, 40, 0)
$Button[3] = GUICtrlCreateButton("", 460, 10, 140, 40, 0)
$Button[4] = GUICtrlCreateButton("", 10, 60, 140, 40, 0)
$Button[5] = GUICtrlCreateButton("", 160, 60, 140, 40, 0)
$Button[6] = GUICtrlCreateButton("", 310, 60, 140, 40, 0)
$Button[7] = GUICtrlCreateButton("", 460, 60, 140, 40, 0)
$Button[8] = GUICtrlCreateButton("", 10, 110, 140, 40, 0)
$Button[9] = GUICtrlCreateButton("", 160, 110, 140, 40, 0)
$Button[10] = GUICtrlCreateButton("", 310, 110, 140, 40, 0)
$Button[11] = GUICtrlCreateButton("", 460, 110, 140, 40, 0)
$Menu1 = GUICtrlCreateMenu ("Datei")
$Menu1Item1 = GUICtrlCreateMenuItem ("Datei zum abspielen auswählen", $Menu1)
$Menu1Item2 = GUICtrlCreateMenuItem ("", $Menu1)
$Menu1Item3 = GUICtrlCreateMenuItem ("Beenden", $Menu1)
$Menu2 = GUICTrlCreateMenu ("Hilfe")
$Menu2Item1 = GUICtrlCreateMenuItem ("Über", $Menu2)
$Menu2Item2 = GUICtrlCreateMenuItem ("", $Menu2)
$Menu2Item3 = GUICtrlCreateMenuItem ("Hilfe", $Menu2)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
; --------
If Not FileExists (@ScriptDir & "\Save.ini") Then
For $i = 0 To 11 Step 1
IniWrite (@ScriptDir & "\Save.ini", "Angelegte Dateien", $i, "Pfad-Leer|Name-Leer")
Next
Else
For $i = 0 To 11 Step 1
$IniRead = IniRead (@ScriptDir & "\Save.ini", "Angelegte Dateien", $i, $i)
$Split = StringSplit ($IniRead, "|")
GUICtrlSetData ($Button[$i], $Split[2])
Next
EndIf
; ==============================================================
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case -3, $Menu1Item3
Exit
Case $Menu1Item1
_DateiAuswahl ()
Case $Button[0]
_Button1Klick ()
EndSwitch
WEnd
; ==============================================================
Func _DateiAuswahl ()
$FileOpenDia = FileOpenDialog ("Bitte Datei Auswählen", @DesktopDir, "Videos (*.avi)|Sounds (*.wma;*.wav;*.mp3)", 1)
If Not @Error Then
$InputBox = InputBox ("Button auswählen", "Auf welchen Button soll der Effekt gelegt werden? (Nur Zahlen von 0 - 11")
$InputBox2 = InputBox ("Name auswählen", "Bitte einen Namen für den Button auswählen")
IniWrite (@ScriptDir & "\Save.ini", "Angelegte Dateien", $InputBox, $FileOpenDia & "|" & $InputBox2)
GUICtrlSetData ($Button[$InputBox], $InputBox2)
EndIf
EndFunc ;==> _DateiAuswahl ()
; ==============================================================
Func _Button1Klick ()
$IniRead1 = IniRead (@ScriptDir & "\Save.ini", "Angelegte Dateien", 0, "!! FEHLER !!")
$Split1 = StringSplit ($IniRead1, "|")
$String1 = StringRight ($Split1[1], 3)
If $String1 = "mp3" or $String1 = "wav" or $String1 = "wma" Then
SoundPlay ($Split1[1], 0)
ElseIf $String1 = "avi" Then
$GUI2 = GUICreate ("", 500, 500, -1, -1)
$Avi = GUICtrlCreateAvi ($Split1[1], -1, 0, 0, 500, 500, 0x04)
GUISetState (@SW_SHOW)
While 1
$nMsg2 = GUIGetMsg ()
Switch $nMsg2
Case -3
GUIDelete ($GUI2)
ExitLoop
EndSwitch
WEnd
EndIf
EndFunc ;==> _Button1Klick
Ich würde es gerne so machen, dass wenn man einen Button drückt, dessen Array ausgelesen wird.
Also so dass wenn man $Button[0] drückt, auch dieser ausgelesen wird, wenn man Button[5] drückt, soll dieser ausgelesen werden.
Also so, dass man nicht
Case $Button[0]
...
Case $Button[1]
...
Case $Button[2]
...
u.s.w. machen muss. so brauch ich auch nur eine Func, und nicht 12, die den gleichen Inhalt haben...
hoffe ihr versteht was ich meine.
PS: Ich weis, man könnte die 12 Buttons in eine For-Next schleife packen, ums zu kü+rzen, aber bitte lasst es so,
ich finds so übersichtlicher.