Page 1 sur 1

[R] Génération automatique d'un case

Posté : lun. 30 juin 2008 17:24
par Nicolas
Bonjour,

je suis en train de faire un script qui utilise un menu "tray" (dans la barre de notification) et le nombre "d'item" du menu dépend des informations contenu dans un fichier (je crée donc à chaque fois les "items" du menu ). Ensuite quand la personne clique sur un "item" ça lance une action, hélas je ne sais pas comment faire mon "select case" car le nombre de "case" dépend du nombre "d'item" de mon menu mais ce nombre change à chaque lancemetn du programme. Est ce que quelqu'un saurait comment générer mon sélect case en automatique à chaque lancement du programme ?
merci d'avance

Re: [..] Génération automatique d'un case

Posté : lun. 30 juin 2008 23:52
par moutelous
Bonjour Nicolas,
Nicolas a écrit :(je crée donc à chaque fois les "items" du menu )
Ainsi vous créez à chaque fois les items du menu ....
Nicolas a écrit :Hélas je ne sais pas comment faire mon "select case" car le nombre de "case" dépend du nombre "d'item" de mon menu
Mais si vous créez à chaque fois les items du menu vous êtes capable de gérer les "Select Case"

Tout ceci n'est pas très limpide ....


A+

Re: [..] Génération automatique d'un case

Posté : mar. 01 juil. 2008 00:11
par Tlem
Avec le code, on y verrait plus clair. :D

Re: [..] Génération automatique d'un case

Posté : mar. 01 juil. 2008 03:29
par Nicolas
Désolé du manque de clarté :( . Alors j'espère qu'avec le code ça sera mieux :

Code : Tout sélectionner

$networkini="c:\toto.ini"
$ini = IniReadSectionNames($networkini)
$j=0
Dim $test[20]
;----------- création de mes items automatiquement
For $1 = 1 to $ini[0]
    $test[$j]= TrayCreateItem($ini[$1],-1,-1,1)
    $j=$j+1
Next
;----------- le select case lui est manuel et ne s'adapte pas au nombre d'item
While 1
    $msg = TrayGetMsg()
    Select
        case $msg=$test[0]
            action(0)
        case $msg=$test[1]
            action(1)
        case $msg=$test[2]
            action(2)
        case $msg=$test[3]
            action(3)
        case $msg=$test[4]
            action(4)
        case $msg=$test[5]
            action(5)
      endselect
wend

Re: [..] Génération automatique d'un case

Posté : mar. 01 juil. 2008 08:48
par Tlem
Je n'en suis pas sur, mais peut-être que quelque chose de ce genre devrais faire l'affaire (A tester) :

Code : Tout sélectionner

While 1
    $msg = TrayGetMsg()
    Select
        case $msg = $Exit
            Exit
        case Else
            For $i = 1 to $ini[0]
                If $msg = $test[$i] Then action($i)
            Next
      endselect
  wend
 

Re: [..] Génération automatique d'un case

Posté : mer. 02 juil. 2008 04:35
par Nicolas
Merci beaucoup. Cela fonctionne parfaitement !