Hallo,
Ist es möglich eine eigene Funktion mit einer "unendlichen" Zahl an Parametern auszustatten?
Hintergrund des ganzen: Ich habe eine Funktion, welche ein Fenster einblendet.
Func _Fade($hGUI, $iFadeIn = 1, $iMinTrans = 0, $iMaxTrans = 255, $iFadeSpeed = 5, $bMov = True)
[/autoit]Wie ihr seht ist der erste Parameter ein GUI Handle.
Ich würde die Funktion aber gerne wie folgt aufbauen:
Func _Fade($hGUI, $iFadeIn = 1, $iMinTrans = 0, $iMaxTrans = 255, $iFadeSpeed = 5, $bMov = True,$hGUI1,$hGUI2,$hGUI3, .... , $hGUIn)
[/autoit]
Das hat den Hintergrund, dass ich zum jetzigen Standpunkt ein GUI erst voll einfaden muss bevor der nächste "Fade" startet.
Wenn ich mehrere GUI's beim Funktionsaufruf eintragen könnte, (und diese auch entsprechend abfrage) kann ich ein Pseudo-Paralleles einblenden ermöglichen.
Es sieht zum jetzigen Zeitpunkt einfach scheiße aus, wenn Minimieren, Maximieren und Schließen (Eigene Pics als Buttons) nacheinander einblenden.
Vom Code selbst kann ich euch leider nur eine minimalversion der _Fade() geben, da das ganze Projekt für den uIT-Light gedacht ist.
Spoiler anzeigen
Func _Fade($hGUI, $iFadeIn = 1, $iMinTrans = 0, $iMaxTrans = 255, $iFadeSpeed = 5, $bMov = True)
If $iMinTrans < 0 Then $iMinTrans = 0
If $iMaxTrans > 255 Then $iMaxTrans = 255
If $iFadeSpeed < 0 Then $iFadeSpeed = 5
Local $aPos = WinGetPos($hGUI)
Local $iN = 1
Switch $iFadeIn
Case 1
WinSetTrans($hGUI, "", 0)
GUISetState(@SW_SHOW, $hGUI)
For $i = $iMinTrans To $iMaxTrans Step $iFadeSpeed
WinSetTrans($hGUI, "", $i)
Sleep(10)
Next
Case 0
For $i = $iMaxTrans To $iMinTrans Step $iFadeSpeed * (-1)
WinSetTrans($hGUI, "", $i)
Sleep(10)
Next
GUISetState(@SW_HIDE, $hGUI)
EndSwitch
EndFunc ;==>_Fade
Möglich ist sowas ja . BitAND() bzw BitOR() haben ja so eine Syntax. Nur leider sind das ja Build-In Funktionen, die man leider nicht einsehen kann, sonst hätte ich nicht posten müssen.