Question
fonction add_click
- jerem
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 6
- Remerciements reçus 0
il y a 12 ans 1 mois #17065
par jerem
fonction add_click a été créé par jerem
Bonjour,
J'ai un petit problème dans un script qui est en fait un petit quizz sur les animaux. Voici le bout de code qui me pose problème :
$bouton_passer.Location = New-Object System.Drawing.Point(260, 120)
$bouton_passer.Size = New-Object System.Drawing.Size(90, 50)
$bouton_passer.Text = ''
$bouton_passer.Image = $icone_passer
$bouton_passer.ImageAlign = 'MiddleCenter'
$bouton_passer.Add_Click({
$nb ++
$animal = $tab[$nb]
$zone_animal.ImageLocation = \"d:\divers\scripts_powershell\jeux\quizz_animaux\photos\$animal\"
})
la variable $nb est initialisée à 0 au début du script. La variable $tab est un tableau contenant des variables de type string qui sont des noms de fichiers (ex : \"puma.jpg\")
Lorsque j'exécute le script et que je clique sur le bouton \"passer\" la première fois, cela fonctionne : $nb initialement égale à 0 est bien incrémentée de 1 et la zone de mon form qui contient la photo de l'animal change bien aussi : $animal contient bien le 2ème nom de fichier de mon tableau.
Par contre si je clique une 2nde fois sur le bouton \"passer\", $nb reste à la valeur 1 et la photo ne change donc pas.
Un peu comme si la méthode add_click ne prenait en charge qu'un seul clic... Ou alors j'ai commis une bourde dans ce bout de code...
Voyez-vous l'erreur ? Merci pour votre aide.
J'ai un petit problème dans un script qui est en fait un petit quizz sur les animaux. Voici le bout de code qui me pose problème :
$bouton_passer.Location = New-Object System.Drawing.Point(260, 120)
$bouton_passer.Size = New-Object System.Drawing.Size(90, 50)
$bouton_passer.Text = ''
$bouton_passer.Image = $icone_passer
$bouton_passer.ImageAlign = 'MiddleCenter'
$bouton_passer.Add_Click({
$nb ++
$animal = $tab[$nb]
$zone_animal.ImageLocation = \"d:\divers\scripts_powershell\jeux\quizz_animaux\photos\$animal\"
})
la variable $nb est initialisée à 0 au début du script. La variable $tab est un tableau contenant des variables de type string qui sont des noms de fichiers (ex : \"puma.jpg\")
Lorsque j'exécute le script et que je clique sur le bouton \"passer\" la première fois, cela fonctionne : $nb initialement égale à 0 est bien incrémentée de 1 et la zone de mon form qui contient la photo de l'animal change bien aussi : $animal contient bien le 2ème nom de fichier de mon tableau.
Par contre si je clique une 2nde fois sur le bouton \"passer\", $nb reste à la valeur 1 et la photo ne change donc pas.
Un peu comme si la méthode add_click ne prenait en charge qu'un seul clic... Ou alors j'ai commis une bourde dans ce bout de code...
Voyez-vous l'erreur ? Merci pour votre aide.
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 12 ans 1 mois #17066
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:fonction add_click
Salut,
essaie en déclarant la portée :Script sur ta variable $nb : $Script:nb
essaie en déclarant la portée :Script sur ta variable $nb : $Script:nb
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- jerem
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 6
- Remerciements reçus 0
il y a 12 ans 1 mois #17068
par jerem
Réponse de jerem sur le sujet Re:fonction add_click
En fait je suis en train de lire le livre powershell v2 et j'avais bien utilisé cette technique que vous citez en mettant $script devant ma variable \"nb\" même si je ne l'ai pas précisé dans mon post.
Je vois pas ce qui cloche...
Je vois pas ce qui cloche...
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 12 ans 1 mois #17070
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:fonction add_click
doezli écrit:

Un code de test rapido :
[code:1]
#Generated Form Function
function GenerateForm {
########################################################################
# Code Generated By: SAPIEN Technologies PrimalForms (Community Edition) v1.0.10.0
# Generated On: 22/02/2014 21:10
# Generated By: Laurent
########################################################################
#region Import the Assemblies
[reflection.assembly]::loadwithpartialname(\"System.Windows.Forms\"«») | Out-Null
[reflection.assembly]::loadwithpartialname(\"System.Drawing\"«») | Out-Null
#endregion
#region Generated Form Objects
$form1 = New-Object System.Windows.Forms.Form
$label1 = New-Object System.Windows.Forms.Label
$button1 = New-Object System.Windows.Forms.Button
$InitialFormWindowState = New-Object System.Windows.Forms.FormWindowState
#endregion Generated Form Objects
#
#Generated Event Script Blocks
#
#Provide Custom Code for events specified in PrimalForms.
$handler_button1_Click=
{
$label1.Text = \"Numéro :$nb `t $($Animal[$nb])\"
$nb++
}
$OnLoadForm_StateCorrection=
{#Correct the initial state of the form to prevent the .Net maximized form issue
$form1.WindowState = $InitialFormWindowState
}
#
#region Generated Form Code
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 141
$System_Drawing_Size.Width = 166
$form1.ClientSize = $System_Drawing_Size
$form1.DataBindings.DefaultDataSourceUpdateMode = 0
$form1.Name = \"form1\"
$form1.Text = \"Test scope\"
$label1.DataBindings.DefaultDataSourceUpdateMode = 0
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 13
$System_Drawing_Point.Y = 22
$label1.Location = $System_Drawing_Point
$label1.Name = \"label1\"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 23
$System_Drawing_Size.Width = 78
$label1.Size = $System_Drawing_Size
$label1.TabIndex = 1
$label1.Text = \"Numéro : 0\"
$form1.Controls.Add($label1)
$button1.DataBindings.DefaultDataSourceUpdateMode = 0
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 50
$System_Drawing_Point.Y = 88
$button1.Location = $System_Drawing_Point
$button1.Name = \"button1\"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 23
$System_Drawing_Size.Width = 75
$button1.Size = $System_Drawing_Size
$button1.TabIndex = 0
$button1.Text = \"button1\"
$button1.UseVisualStyleBackColor = $True
$button1.add_Click($handler_button1_Click)
$form1.Controls.Add($button1)
#endregion Generated Form Code
#Save the initial state of the form
$InitialFormWindowState = $form1.WindowState
#Init the OnLoad event to correct the initial state of the form
$form1.add_Load($OnLoadForm_StateCorrection)
$nb=0
$Animal=0..49|% {\"Animal_$_\"}
#Show the Form
$form1.ShowDialog()| Out-Null
} #End Function
#Call the Function
GenerateForm
[/code:1]
Sans le code, moi non plusJe vois pas ce qui cloche...
Un code de test rapido :
[code:1]
#Generated Form Function
function GenerateForm {
########################################################################
# Code Generated By: SAPIEN Technologies PrimalForms (Community Edition) v1.0.10.0
# Generated On: 22/02/2014 21:10
# Generated By: Laurent
########################################################################
#region Import the Assemblies
[reflection.assembly]::loadwithpartialname(\"System.Windows.Forms\"«») | Out-Null
[reflection.assembly]::loadwithpartialname(\"System.Drawing\"«») | Out-Null
#endregion
#region Generated Form Objects
$form1 = New-Object System.Windows.Forms.Form
$label1 = New-Object System.Windows.Forms.Label
$button1 = New-Object System.Windows.Forms.Button
$InitialFormWindowState = New-Object System.Windows.Forms.FormWindowState
#endregion Generated Form Objects
#
#Generated Event Script Blocks
#
#Provide Custom Code for events specified in PrimalForms.
$handler_button1_Click=
{
$label1.Text = \"Numéro :$nb `t $($Animal[$nb])\"
$nb++
}
$OnLoadForm_StateCorrection=
{#Correct the initial state of the form to prevent the .Net maximized form issue
$form1.WindowState = $InitialFormWindowState
}
#
#region Generated Form Code
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 141
$System_Drawing_Size.Width = 166
$form1.ClientSize = $System_Drawing_Size
$form1.DataBindings.DefaultDataSourceUpdateMode = 0
$form1.Name = \"form1\"
$form1.Text = \"Test scope\"
$label1.DataBindings.DefaultDataSourceUpdateMode = 0
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 13
$System_Drawing_Point.Y = 22
$label1.Location = $System_Drawing_Point
$label1.Name = \"label1\"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 23
$System_Drawing_Size.Width = 78
$label1.Size = $System_Drawing_Size
$label1.TabIndex = 1
$label1.Text = \"Numéro : 0\"
$form1.Controls.Add($label1)
$button1.DataBindings.DefaultDataSourceUpdateMode = 0
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = 50
$System_Drawing_Point.Y = 88
$button1.Location = $System_Drawing_Point
$button1.Name = \"button1\"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Height = 23
$System_Drawing_Size.Width = 75
$button1.Size = $System_Drawing_Size
$button1.TabIndex = 0
$button1.Text = \"button1\"
$button1.UseVisualStyleBackColor = $True
$button1.add_Click($handler_button1_Click)
$form1.Controls.Add($button1)
#endregion Generated Form Code
#Save the initial state of the form
$InitialFormWindowState = $form1.WindowState
#Init the OnLoad event to correct the initial state of the form
$form1.add_Load($OnLoadForm_StateCorrection)
$nb=0
$Animal=0..49|% {\"Animal_$_\"}
#Show the Form
$form1.ShowDialog()| Out-Null
} #End Function
#Call the Function
GenerateForm
[/code:1]
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- jerem
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 6
- Remerciements reçus 0
il y a 12 ans 3 semaines #17071
par jerem
Réponse de jerem sur le sujet Re:fonction add_click
Bonjour et merci pour ce bout de code.
Pourrais-je vous envoyer mon script complet en privé car il est un peu long ?
Pourrais-je vous envoyer mon script complet en privé car il est un peu long ?
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 12 ans 3 semaines #17072
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:fonction add_click
doezli écrit:
<br><br>Message édité par: Laurent Dardenne, à: 4/08/14 16:28
Sur ce forum ce n'est pas possible, à moins de le coller en pièce jointe dans un zip, de plus j'ai déjà du code à débuggerPourrais-je vous envoyer mon script complet en privé car il est un peu long ?
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.049 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- fonction add_click