[..] Ne pas ecrire le 1er parametre d'une fonction ?

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
splinter29
Niveau 1
Niveau 1
Messages : 7
Enregistré le : dim. 28 déc. 2008 13:52
Status : Hors ligne

[..] Ne pas ecrire le 1er parametre d'une fonction ?

#1

Message par splinter29 »

Bien le bonjour a tous,
J'ai une petite question qui m'est apparu en codant ( Oui , oui mon cerveau travail beaucoup quand je programme :lol: )

Alors n'ayant pas trouvé de vrai réponse je vous la soumet.
Comme vous devez tous le savoir, la fonction Beep possède deux paramètres .Est-il possible de lui donner uniquement le second paramètre de durée, le premier étant par défaut.

Code : Tout sélectionner

Beep(?,500)
Inutile de proposer la réponse "Il suffit de rentrer la fréquence par défaut" cela sortirait du cadre de ma question.
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [..] Ne pas ecrire le 1er parametre d'une fonction ?

#2

Message par Iste »

Souvent, les fonction utilisent la valeur -1
Sinon, tu peux aussi utiliser Default
mais il faut que la fonction le prévoit
Signez ici
kay69
Niveau 2
Niveau 2
Messages : 27
Enregistré le : jeu. 03 sept. 2009 14:56
Status : Hors ligne

Re: [..] Ne pas ecrire le 1er parametre d'une fonction ?

#3

Message par kay69 »

Non je ne crois pas mais tu peux faire une fonction qui le fait, du style :

Code : Tout sélectionner

Func _beep($duree)
    Beep(1000, $duree)
EndFunc
Et pour l'appeler tu a juste a faire "_beep(durée du beep)"
splinter29
Niveau 1
Niveau 1
Messages : 7
Enregistré le : dim. 28 déc. 2008 13:52
Status : Hors ligne

Re: [..] Ne pas ecrire le 1er parametre d'une fonction ?

#4

Message par splinter29 »

Oé ce serait la solution kay69 puisque le Default ne fonctionne pas , du moins dans le cas du Beep.

Voila une question résolu.
Mais j'ai ai une autre ! Bon bien sur ce ne sont pas des questions existentielles; Elles peuvent très bien être contournées assez facilement. C'est pour cela que je ne vais pas vous embêter a faire un nouveau post.

Alors, dans le cas d'un pixelsearch on nous propose une variation possible de la couleur. Quelle méthode emploieriez-vous dans une instruction conditionnelle pour ne pas avoir une seul couleur mais un panel plus ou moins large ?
par exemple pour simplifier cette expression

Code : Tout sélectionner

$a = pixelgetcolor(500,500)
If  $a = 0x0000FF or $a = 0x0000FE or $a = 0x000100 then
...
 
(Plus très sur des notation hexadécimal :roll: mais ca n'a pas beaucoup d'importance pour l'exemple)

ou alors peut-être serait-il plus judicieux de faire un encadrement comme cela

Code : Tout sélectionner

If $a < limite haute and $a > limite basse then
...
Si vous avez encore d'autre méthode je suis preneur :)
kay69
Niveau 2
Niveau 2
Messages : 27
Enregistré le : jeu. 03 sept. 2009 14:56
Status : Hors ligne

Re: [..] Ne pas ecrire le 1er parametre d'une fonction ?

#5

Message par kay69 »

C'est pour des couleurs prédéfini ou non ?
Si ou tu peux faire comme sa :

Code : Tout sélectionner

Dim $Pixel[999]
    $Pixel[0] = 0x0000FF
    $Pixel[1] = 0x0000FE
    $Pixel[2] = 0x000100

$i = 0

$a = pixelgetcolor(500,500)

While 1
    If $Pixel[$i]="" Then
        MsgBox(0, "Erreur", "Le pixel trouvé n'est pas un de ceux noté")
        Exit
    EndIf
    If $a = $Pixel[$i] Then
        ...
        ExitLoop
    Else
        $i=$i+1
    EndIf
WEnd
splinter29
Niveau 1
Niveau 1
Messages : 7
Enregistré le : dim. 28 déc. 2008 13:52
Status : Hors ligne

Re: [..] Ne pas ecrire le 1er parametre d'une fonction ?

#6

Message par splinter29 »

Là pour le coup ca ne conviendrait pas Kay69. J'aurais peut-être du être un peu plus explicite au niveau de mon code a savoir:

Code : Tout sélectionner

$a = pixelgetcolor(500,500)
If  $a = 0x0000FF or $a = 0x0000FE or $a = 0x000100 [color=#BF0000]or ... or $a = 0x****** [/color]then
...
 
Ce serait vraiment un intervalle de couleur soit non défini pour l'instant soit trop important pour en faire un tableau manuellement.

Quelqu'un connaitrait-il le fonctionnement du paramètre Shade-variation pour que je puisse m'en inspirer ?
kay69
Niveau 2
Niveau 2
Messages : 27
Enregistré le : jeu. 03 sept. 2009 14:56
Status : Hors ligne

Re: [..] Ne pas ecrire le 1er parametre d'une fonction ?

#7

Message par kay69 »

Je viens de faire 2 fonction pour faire des variation je ne les ai pas tester par contre ^^ regarde si sa te vas :

Code : Tout sélectionner

; _variationbasse($couleur, $Variation)
; _variationhaute($couleur, $Variation)
; $Couleur = Couleur du pixel en hexadecimal (ex: "0xFF00FF")
; $Variation = un nombre en 0 et 255 pour indiquer le nombre de variation du rouge, bleu, et vert
; Les fonctions retourne le code couleur varier ex _variationbasse("0xFF00FF", 1) Retourne = "0xFE00FE"

Func _variationbasse($couleur, $Variation)
    $CodeCouleur=StringReplace($Couleur, "0x", "")
    $Couleur=StringSplit($CodeCouleur, "")
    $R=$Couleur[1]&$Couleur[2]
    $V=$Couleur[3]&$Couleur[4]
    $B=$Couleur[5]&$Couleur[6]
    $Rouge=Dec($R)
    $Vert=Dec($V)
    $Bleu=Dec($B)
    $Rougevardec=$Rouge-$Variation
    $Vertvardec=$Vert-$Variation
    $Bleuvardec=$Bleu-$Variation
    If $Rougevardec>0 Then
        $Rougevar=Hex($Rougevardec, 2)
    Else
        $Rougevar=Hex(0, 2)
    EndIf
    If $Vertvardec>0 Then
        $Vertvar=Hex($Vertvardec, 2)
    Else
        $Vertvar=Hex(0, 2)
    EndIf
    If $Bleuvardec>0 Then
        $Bleuvar=Hex($Bleuvardec, 2)
    Else
        $Bleuvar=Hex(0, 2)
    EndIf
    $Couleurvar="0x"&$Rougevar&$Vertvar&$Bleuvar
    Return $Couleurvar
EndFunc

Func _variationhaute($couleur, $Variation)
    $CodeCouleur=StringReplace($Couleur, "0x", "")
    $Couleur=StringSplit($CodeCouleur, "")
    $R=$Couleur[1]&$Couleur[2]
    $V=$Couleur[3]&$Couleur[4]
    $B=$Couleur[5]&$Couleur[6]
    $Rouge=Dec($R)
    $Vert=Dec($V)
    $Bleu=Dec($B)
    $Rougevardec=$Rouge+$Variation
    $Vertvardec=$Vert+$Variation
    $Bleuvardec=$Bleu+$Variation
    If $Rougevardec<255 Then
        $Rougevar=Hex($Rougevardec, 2)
    Else
        $Rougevar=Hex(255, 2)
    EndIf
    If $Vertvardec<255 Then
        $Vertvar=Hex($Vertvardec, 2)
    Else
        $Vertvar=Hex(255, 2)
    EndIf
    If $Bleuvardec<255 Then
        $Bleuvar=Hex($Bleuvardec, 2)
    Else
        $Bleuvar=Hex(255, 2)
    EndIf
    $Couleurvar="0x"&$Rougevar&$Vertvar&$Bleuvar
    Return $Couleurvar
EndFunc
Répondre