tray-funktion mit variablen

  • hi leute,

    ich habe mir ein tray-script erzeugt, das mir auf auf die rechte mouse-taste die variablen a bis z legt:


    DIM $LABEL[26]=['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']
    DIM $LW_X[26]

    FOR $X=0 TO 25
    $LW_X[$X]=TrayCreateItem($LABEL[$X])
    NEXT


    das funktioniert soweit, aber ich bekomme es nicht hin, dass beim anklicken der items etwas ausgeführt wird:


    WHILE 1

    $MSG=TrayGetMsg()

    SELECT

    CASE $MSG=0
    CONTINUELOOP

    CASE $MSG=$LW_X[$X]
    MSGBOX (0,'INFO',$LABEL[$X])

    ENDSELECT

    WEND


    ich hoffe, es ist nur ein einfaches syntax-problem ... weiss jemand, was ich falsch mache?

    danke fuer die hilfe

    sam

    Einmal editiert, zuletzt von sam ghost (23. September 2009 um 12:07)

  • Hi,

    hier die While Schleife:

    [autoit]

    While 1
    For $i = 0 To 25
    Switch TrayGetMsg ()
    Case $LW_X[$i]
    MSGBOX (0,'INFO',$LABEL[$X])
    EndSwitch
    Next
    Sleep (50)
    WEnd

    [/autoit]

    Falls Du Funktionen hinterlegen möchtest, nimm anstatt der MsgBox ein Call ("Label_Func_" & $i)

    Func Label_Func_1
    MsgBox (0, "Funktion","Label_Func_1")
    EndFunc

    ;-))
    Stefan

  • hallo stefan,

    danke fuer die schnelle hilfe. aber ganz hab ich es noch nicht kapiert und macht auch noch nicht das, was ich wollte.

    ich erklaers vielleicht nochmal. normalerweise haette ich mein script so gestaltet:


    $LW_A=TrayCreateItem('A')
    $LW_B=TrayCreateItem('B')
    $LW_C=TrayCreateItem('C')
    ...
    $LW_Z=TrayCreateItem('Z')


    WHILE 1

    $MSG=TrayGetMsg()

    SELECT

    CASE $MSG=0
    CONTINUELOOP

    CASE $MSG=$LW_A
    MSGBOX (0,'INFO','ist A')

    CASE $MSG=$LW_B
    MSGBOX (0,'INFO','ist B')

    CASE $MSG=$LW_C
    MSGBOX (0,'INFO','ist C')

    ...

    CASE $MSG=$LW_Z
    MSGBOX (0,'INFO','ist Z')

    ENDSELECT

    WEND


    ich wollte mir natuerlich tip-arbeit sparen und das ganze per schleife eleganter loesen.

    sam

  • Hi,

    Spoiler anzeigen
    [autoit]

    Opt("TrayMenuMode",1)

    [/autoit] [autoit][/autoit] [autoit]

    DIM $LABEL[26]=['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']
    DIM $LW_X[26]

    [/autoit] [autoit][/autoit] [autoit]

    FOR $X=0 TO 25
    $LW_X[$X]=TrayCreateItem($LABEL[$X])
    NEXT
    TrayCreateItem("")
    $exititem = TrayCreateItem ("Exit")
    TraySetState()

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $msg = TrayGetMsg ()
    For $x = 0 To 25
    Switch $msg
    Case $LW_X[$x]
    MSGBOX (0,'INFO',$LABEL[$x])
    Case $exititem
    _exit ()
    EndSwitch
    Next
    ;Sleep (50)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _exit ()
    Exit
    EndFunc

    [/autoit]

    ;-))
    Stefan