Forum | | | | 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
|
| | | | |
| | 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 |
| | | | |
| | 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
|
| | | | |
|
répondreOptions du sujet | 4.592 Views |
Themeninformationencet Thema hat 2 participant: |