Français
Forum

Erledigt: souris PopUp menu hakt

 

Ulrich
Milde
je hab un fest verdrahtetes Programme geschrieben, avec dem je qui gleichmässige Verteilung de Bohrungen dans einem Rechteckrahmen hinbekomme. dans mon cas ca va à Umrahmung eines Oberlichtes avec LEDs, so comment un Sternenhimmel. cela funktioniert soweit, comment on ici voyons peux. [...] 
eh bien suis je dabei, cet Programme allgemeiner umzubauen. à l'attaque ca va avec dem Rechteckrahmen. je benutze un Mausmenü, quoi avec qui rechten bouton aufgerufen wird. Wenns um den äusseren cadre allez ist alles ok. Zum inneren cadre viens je pas so droite, weil ensuite le menu pas plus aufgerufen volonté peux. encore eines, CheckMenu funktioniert anscheinend pas avec unahängigen PopUp Menüs. Ist cela so?

je hänge cela Program à, dans den Procs Mausrechtinnen et Mausrechtaussen volonté seulement Rechtecke gezeichnet. là kanns eigentlich pas tour liegen.

je remercie déjà la fois pour qui Aider!
KompilierenMarqueSéparation
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
tu dois den MenuCheck- Zustand dans einer Variablen hinterlegen, là es dans qui Boucle chaque la fois récente erstellt wird.
KompilierenMarqueSéparation
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
oui, dankeschön, je wär pas sur qui concept avec qui Variablen gekommen. cela Mausmenü fonctionne et sonst nähren sich qui Rechtecke toujours plus dem cadre à, den vous bilden devoir. je häng cela eh bien déjà un peu besser tickende Proggi unten nochmal à, si quelqu'un ähnliche Probleme comment je avons sollte.

merci et tschüss
KompilierenMarqueSéparation
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  
 



répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

4.590 Views

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

Themeninformationen

cet Thema hat 2 participant:

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


Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie