[Func] Bloc conditionnel rapide
Posté : mar. 15 juin 2010 16:59
Tous les développeurs ont un jour compris la puissance du a?b:c, chose qui n'existe pas sous AutoIt, quel dommage... Le code qui suit est plus que trivial, voire au même niveau que les lapins crétins ^^ :Mais il vous transforme 5 lignes de codes en une seule la plupart du temps, en rendant les changements plus faciles et la compréhension parfois bien meilleure.
Exemple pour une fenêtre que l'on cale dans un coin de l'écran :Avec la fonction cond(...) ça donne :
Comme dit plus haut, ça peut sembler très con, mais ça dépanne beaucoup en matière de compréhension.
Vous pouvez même ajouter un système de Controle-Break (And_then ou Or_else) en obligeant les évaluations de chaine (mais ne permet plus de calculs) :
A bientôt !
Code : Tout sélectionner
Func cond($cond, $a,$b)
If $cond Then Return $a
Return $b
EndFunc
Exemple pour une fenêtre que l'on cale dans un coin de l'écran :
Code : Tout sélectionner
Local $LR="right", $UD = "up", $ecart = 10, $GUI
If $LR = "left" And $UD = "up" Then
$GUI = GUICreate("Ma fenetre dans un coin ["&$LR&","&$UD&"]", 200,100, _
$ecart,$ecart, _
$WS_POPUP+$WS_BORDER, $WS_EX_TOPMOST)
ElseIf $LR = "left" And $UD = "down" Then
$GUI = GUICreate("Ma fenetre dans un coin ["&$LR&","&$UD&"]", 200,100, _
$ecart,@DesktopHeight-100-$ecart, _
$WS_POPUP+$WS_BORDER, $WS_EX_TOPMOST)
ElseIf $LR = "right" And $UD = "up" Then
$GUI = GUICreate("Ma fenetre dans un coin ["&$LR&","&$UD&"]", 200,100, _
@DesktopWidth-200-$ecart,$ecart, _
$WS_POPUP+$WS_BORDER, $WS_EX_TOPMOST)
ElseIf $LR = "right" And $UD = "down" Then
$GUI = GUICreate("Ma fenetre dans un coin ["&$LR&","&$UD&"]", 200,100, _
@DesktopWidth-200-$ecart,@DesktopHeight-100-$ecart, _
$WS_POPUP+$WS_BORDER, $WS_EX_TOPMOST)
EndIf
Code : Tout sélectionner
Local $LR="right", $UD = "up", $ecart = 10, $GUI
$GUI = GUICreate("Ma fenetre dans un coin ["&$LR&","&$UD&"]", 200,100, _
cond($LR="left", $ecart, @DesktopWidth-200-$ecart), cond($UD="up", $ecart, @DesktopHeight-100-$ecart), _
$WS_POPUP+$WS_BORDER, $WS_EX_TOPMOST)
Vous pouvez même ajouter un système de Controle-Break (And_then ou Or_else) en obligeant les évaluations de chaine (mais ne permet plus de calculs) :
Code : Tout sélectionner
Func condEval($cond, $a,$b)
If $cond Then Return Eval($a)
Return Eval($b)
EndFunc