Español
Foro

Hecho: Ratón PopUp Menü hakt

 

Ulrich
Milde
Yo una fest verdrahtetes Programa geschrieben, con el Yo el gleichmässige Verteilung de Bohrungen en un Rechteckrahmen hinbekomme. In mi caso es a Umrahmung uno Oberlichtes con LEDs, como una Sternenhimmel. Das funktioniert soweit, cómo hier sehen kann. [...] 
Nun bin Yo esta, dieses Programa allgemeiner umzubauen. Los es con el Rechteckrahmen. Yo benutze una Mausmenü, qué con el rechten taste aufgerufen se. Wenns en el äusseren Rahmen va es alles ok. Zum inneren Rahmen komme Yo no así bastante, porque entonces el menü no mehr aufgerufen voluntad kann. Noch uno, CheckMenu funktioniert anscheinend no con unahängigen PopUp Menüs. Ist el así?

Yo hänge el Program a, en el Procs Mausrechtinnen y Mausrechtaussen voluntad sólo Rechtecke suscrito. Como kanns eigentlich No encienda mentira.

Yo danke ya veces para el Ayuda!
KompilierenMarcaSeparación
Proc Mausrechtaussen

    Declare aktmxpos%,aktmypos%
    aktmxpos%=%mousex
    aktmypos%=%mousey

    If (aktmxpos% > myxspos%) and (aktmypos% > myyspos%)

        UsePen 0,1, RGB(255,255,255)
        Rectangle myxspos%,myyspos% - Lxpos1%, Lypos1%
        UsePen 2,1, RGB(90,53,202)
        Line myxspos%,myyspos% - %maxx, myyspos%
        Line myxspos%,myyspos% - myxspos%, %maxy
        UsePen 0,1, RGB(0,0,0)
        Rectangle myxspos%,myyspos% - aktmxpos%, aktmypos%
        Lxpos1%= aktmxpos%
        Lypos1%= aktmypos%
        DrawText %maxx - 120,3, "                                             "
        DrawText %maxx - 120,3, " X = "+ Str$(aktmxpos% - myxspos%)+ " Y = "+Str$(aktmypos% - myyspos%)

    Endif

Endproc

Proc Mausrechtinnen

    Declare aktmxpos%,aktmypos%
    aktmxpos%=%mousex
    aktmypos%=%mousey

    If (aktmxpos% > myxspos%) and (aktmypos% > myyspos%) and (Lxpos2% > aktmxpos%) and (Lypos2% > aktmypos%)

        If (Lxpos2% > aktmxpos%+2) and (Lypos2% > aktmypos%+2)

            UsePen 0,1, RGB(255,255,255)
            Rectangle myxspos%,myyspos% - Lxpos1%, Lypos1%
            UsePen 2,1, RGB(90,53,202)

        Endif

        Line myxspos%,myyspos% - %maxx, myyspos%
        Line myxspos%,myyspos% - myxspos%, %maxy
        UsePen 0,1, RGB(0,0,0)
        Rectangle myxspos%,myyspos% - aktmxpos%, aktmypos%
        Lxpos1%= aktmxpos%
        Lypos1%= aktmypos%
        DrawText %maxx - 120,3, "                                             "
        DrawText %maxx - 120,3, " X = "+ Str$(aktmxpos% - myxspos%)+ " Y = "+Str$(aktmypos% - myyspos%)

    Endif

Endproc

Declare WTitel$, Ende%, myxspos%,myyspos%, lastxpos%,lastypos%
Declare Lxpos1%,Lxpos2%,Lypos1%,Lypos2%
Declare zaussen%,zinnen%
Set("Decimals",0)
Lxpos1%=myxspos%
Lypos1%=Myyspos%
myxspos%=9
myyspos%=9
Lastxpos%=-1
zaussen%=0
zinnen%=0
WTitel$="LEDRect - grafische LED Verteilung in einem Rahmen um ein Oberlicht - 2010 by UKM "
WindowStyle 8
Window 1,1 - %maxx,%maxy
Windowtitle WTitel$
PopUp "RectangleLEDs"
AppendMenu 100, "Rechteck aussen setzen"
Appendmenu 102, "Rechteck innen setzen"
cls
UsePen 2,1, RGB(90,53,202)
Line myxspos%,myyspos% - %maxx, myyspos%
Line myxspos%,myyspos% - myxspos%, %maxy
UsePen 0,1, RGB(0,0,0)

WHILENOT ENDE%

    WAITKey

    If %KEY=2

        ENDE%= 1

    ElseIf %key=27

        Ende%=1

    ElseIf %MouseKey = 2

        CreateMenu
        AppendMenu 101,"Rechteck &aussen"
        AppendMenu 102,"Rechteck &innen"
        AppendMenu 103,"&LEDs"
        Separator
        AppendMenu 109,"&Ende"
        TrackMenu %MouseX,%MouseY

        If MenuItem(101)

            If zaussen%=0

                zaussen%=1
                Checkmenu 101,1

            Else

                zaussen%=0
                Checkmenu 101,0

            Endif

        ElseIf MenuItem(102)

            If zinnen%=0

                zinnen%=1
                zaussen%=0
                Lxpos2%=Lxpos1%
                Lypos2%=Lypos1%

            Else

                zinnen%=0
                zaussen%=1

            EndIf

        ElseIf @MenuItem(109)

            Ende% = 1

        Else

            Print "Ausgewählt:",%MenuItem

        EndIf

    Else

    EndIf

    If zaussen%=1

        Mausrechtaussen

    Endif

    If Zinnen%=1

        Mausrechtinnen
EndIf ENDWHILE
 
06.02.2010  
 




Thomas
Freier
Usted mußt el MenuCheck- Zustand en uno Variables hinterlegen, como lo en el Bucle cada veces neu erstellt se.
KompilierenMarcaSeparación
declare check_1%,check_2%
..........
CreateMenu
AppendMenu 101,"Rahmen aussen"
AppendMenu 102,"Rahmen innen"
Separator
AppendMenu 103,"LED rot"
Separator
AppendMenu 109,"Ende"
CheckMenu 101,check_1%
CheckMenu 102,check_2%
TrackMenu %MouseX,%MouseY

If menuitem(101) AND (check_1%=0)

    ................
    ................
    check_1%=1

ElseIf menuitem(102) AND (check_2%=0)

    ................
    ................
    check_test2%=1   ...............
 
Gruß Thomas
Windows XP SP2, XProfan X2
06.02.2010  
 




Ulrich
Milde
Sí, dankeschön, Yo wär no en el Concepto con el Variables gekommen. Das Mausmenü se ejecuta y sonst nähren el Rechtecke siempre mehr el Rahmen a, el ellos forma debería. Yo häng el nun ya una wenig mejor tickende Proggi unten otra vez a, si alguien ähnliche Problemas Yo haben debería.

Gracias y tschüss
KompilierenMarcaSeparación
Proc Rechteckaussen

    Declare aktmxpos%,aktmypos%
    aktmxpos%=%mousex
    aktmypos%=%mousey

    If (aktmxpos% > myxspos%) and (aktmypos% > myyspos%)

        UsePen 0,1, RGB(255,255,255)
        Rectangle myxspos%,myyspos% - Lxpos1%, Lypos1%
        UsePen 2,1, RGB(90,53,202)
        Line myxspos%,myyspos% - %maxx, myyspos%
        Line myxspos%,myyspos% - myxspos%, %maxy
        UsePen 0,1, RGB(0,0,0)
        Rectangle myxspos%,myyspos% - aktmxpos%, aktmypos%
        Lxpos1%= aktmxpos%
        Lypos1%= aktmypos%
        DrawText %maxx - 120,3, "                                             "
        DrawText %maxx - 120,3, " X = "+ Str$(aktmxpos% - myxspos%)+ " Y = "+Str$(aktmypos% - myyspos%)

    Endif

Endproc

Proc Rechteckinnen

    Declare aktmxpos%,aktmypos%,xdiff%,ydiff%
    aktmxpos%=%mousex
    aktmypos%=%mousey
    xdiff%=Lxpos1%-aktmxpos%

    If (aktmxpos% <= Lxpos1%) and (aktmypos% <= Lypos1%)

        UsePen 0,1, RGB(255,255,255)
        Rectangle myxspos%,myyspos% - Lxpos2%, Lypos2%
        UsePen 2,1, RGB(90,53,202)
        Line myxspos%,myyspos% - %maxx, myyspos%
        Line myxspos%,myyspos% - myxspos%, %maxy
        UsePen 0,1, RGB(0,0,0)
        Rectangle myxspos%,myyspos% - Lxpos1%, Lypos1%
        Rectangle myxspos%+xdiff%,myyspos%+xdiff% - aktmxpos%, aktmypos%
        Lxpos2%= aktmxpos%
        Lypos2%= aktmypos%
        DrawText %maxx - 270,3, "                                                                     "
        DrawText %maxx - 270,3, " XDiff = "+Str$(xdiff%)+ " X = "+ Str$(aktmxpos% - myxspos%)+ " Y = "+Str$(aktmypos% - myyspos%)

    Endif

Endproc

SET("ERRORLEVEL",1)
Declare WTitel$, Ende%, myxspos%,myyspos%, lastxpos%,lastypos%
Declare Lxpos1%,Lxpos2%,Lypos1%,Lypos2%,zeichne%
Declare zaussen%,zinnen%
Set("Decimals",0)
Lxpos1%=myxspos%
Lypos1%=Myyspos%
myxspos%=9
myyspos%=9
Lastxpos%=-1
zaussen%=0
zinnen%=0
WTitel$="LEDRect - grafische LED Verteilung in einem Rahmen um ein Oberlicht - 2010 by UKM "
WindowStyle 8
Window 1,1 - %maxx,%maxy
Windowtitle WTitel$
PopUp "RectangleLEDs"
AppendMenu 100, "Rechteck aussen setzen"
Appendmenu 102, "Rechteck innen setzen"
cls
UsePen 2,1, RGB(90,53,202)
Line myxspos%,myyspos% - %maxx, myyspos%
Line myxspos%,myyspos% - myxspos%, %maxy
UsePen 0,1, RGB(0,0,0)

WHILENOT ENDE%

    WAITKey

    If %KEY=2

        ENDE%= 1

    ElseIf %key=27

        Ende%=1

    ELSEIF %KEY=4

    ElseIf %MousePressed = 1

        If zaussen% = 1

            Rechteckaussen

        Endif

        If zinnen% =1

            Rechteckinnen

        Endif

    ElseIf %MousePressed = 2

        CreateMenu
        AppendMenu 101,"Rechteck &aussen"
        AppendMenu 102,"Rechteck &innen"
        AppendMenu 103,"&LEDs"
        Separator
        AppendMenu 109,"&Ende"
        CheckMenu 101,zaussen%
        CheckMenu 102,zinnen%
        TrackMenu %MouseX,%MouseY

        If MenuItem(101)

            If zaussen%=0

                zaussen%=1

            Else

                zaussen%=0
                Lxpos2%=9
                Lypos2%=9

            Endif

        ElseIf MenuItem(102)

            If zinnen%=0

                zinnen%=1

            Else

                zinnen%=0

            EndIf

        ElseIf @MenuItem(109)

            Ende% = 1

        Else

            Print "Ausgewählt:",%MenuItem

        EndIf

class=s4 href='./../../references-fonction/XProfan/endif/'>Endif ENDWHILE
 
07.02.2010  
 



Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

4.692 Views

Untitledvor 0 min.
Walter02.02.2016
Ernst30.04.2014
Andre Rohland11.02.2014
Frank Vorholzer20.04.2011

Themeninformationen

Dieses Thema ha 2 subscriber:

Ulrich Milde (2x)
Thomas Freier (1x)


Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie