Markier-Funktion
Übersicht BlitzBasic Beginners-Corner
SchoaschBetreff: Markier-Funktion |
Mi, Apr 30, 2008 19:10 Antworten mit Zitat |
|
---|---|---|
Hey =)
Ich versuche gerade eine Markier-Funktion zu machen mit der man (wie z.B. am Desktop) sachen markieren kann. Also auf eine Stelle klicken Maustaste gedrückt lassen und ziehen. Nach einer Stunde ohne Erfolg musste ich doch aufgeben. Jetzt meine Frage: Kennt jemand ein Tut wo das beschrieben is oder kann mir da wer helfen? Wäre euch sehr dankbar! mfg |
||
Eingeproggt |
Mi, Apr 30, 2008 19:43 Antworten mit Zitat |
|
---|---|---|
Ich hab zwar noch nie ein Tut darüber gefunden oder das problem selbst bewältigt, aber ich kann mir nciht vorstellen, wo die Probleme liegen.
Bei mouseHit geht man in den "Rechteck-zieh-modus", bei (Not MouseDown) hat man die koordinaten von dem Auswahlrechteck (Alte Mauskoordinate, neue). Jetzt braucht man nur noch die position der Objekte überprüfen. Ich würd die Objekte dafür übrigens in Types organisieren. mfG, Christoph. |
||
TimBo |
Mi, Apr 30, 2008 20:14 Antworten mit Zitat |
|
---|---|---|
Hi,
ich glaube das is nicht ganz so einfach, denn mit not Mousedown wird immer min. 1 pixel makiert ^^ ich denke (bin mir aber nicht wirklich sicher) dass man MouseUp() benutzen muss, diesen Befehl kann man aber nicht mit Blitz machen sondern nur mit DLL'S? |
||
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31 hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht. |
Eingeproggt |
Mi, Apr 30, 2008 20:20 Antworten mit Zitat |
|
---|---|---|
Ein pixel markiert wär ja nciht so schlimm, oder.. und MouseUp:
Mal so schnell hingeklatscht: Code: [AUSKLAPPEN] Repeat
If MouseDown(1) Then mdown=True Else If mdown Then ;MouseUp:-) Endif mdown=False Endif Until keyHit(1) mfG, Christoph. |
||
TimBo |
Mi, Apr 30, 2008 20:25 Antworten mit Zitat |
|
---|---|---|
Zitat:
Code: [AUSKLAPPEN] Repeat
If MouseDown(1) Then mdown=True Else If mdown Then ;MouseUp:-) mdown=0 ;hast du vergessen Endif Endif Until keyHit(1) doch das mit dem einem Pixel wäre fatal ^^ denn wen ndu schön mit deiner maus ein bereich makiert hast ist es 2 frames später auf der größe eines Pixels XD mfg TimBo |
||
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31 hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht. |
Schoasch |
Mi, Apr 30, 2008 20:34 Antworten mit Zitat |
|
---|---|---|
danke für die schnellen antworten - ich werde mir das morgen genauer anschaun ich muss jetzt leider off.
ich werd euch dann morgen bescheid geben obs funkt mfg |
||
robotx |
Mi, Apr 30, 2008 21:02 Antworten mit Zitat |
|
---|---|---|
Mein kurzer Beitrag dazu:
Code: [AUSKLAPPEN] Graphics 800,600,16,2
Local tstartX, tstartY Repeat Cls If MouseHit (1) Then tstartX = MouseX () tstartY = MouseY () EndIf markieren (tstartX, tstartY) Delay 10 Flip Until KeyHit (1) End Function markieren (startX, startY) Local width, height Local startX1, startY1 If MouseDown (1) Then If startY <= MouseY () Then If startX <= MouseX () Then width = MouseX () - startX height = MouseY () - startY Rect startX, startY, width, height,0 ElseIf startX >= MouseX () Then width = startX - MouseX () height = MouseY () - startY startY1 = startY startX1 = startX - width Rect startX1, startY1, width, height,0 EndIf ElseIf startY >= MouseY () Then If startX <= MouseX () Then width = MouseX () - startX height = startY - MouseY () startY1 = startY - height startX1 = startX Rect startX1, startY1, width, height,0 ElseIf startX >= MouseX () Then width = startX - MouseX () height = startY- MouseY () startY1 = startY - height startX1 = startX - width Rect startX1, startY1, width, height,0 EndIf EndIf EndIf Text 10,10, "MouseX: " + MouseX () Text 10,20, "MouseY: " + MouseY () Text 10, 30, startX Text 10, 40, startY Text 10, 50, width Text 10, 60, height End Function mfg robotx |
||
www.botbomb.robotzgames.de
www.robotzgames.de |
Travis |
Mi, Apr 30, 2008 21:16 Antworten mit Zitat |
|
---|---|---|
Hier noch ein Beispiel. Geht leider nur, wenn man die Box von Linksoben, nach rechtsunten zieht.
Code: [AUSKLAPPEN] Graphics 800,600,16,2
SetBuffer BackBuffer() AppTitle "Selecting Sample by Travis" SeedRnd MilliSecs() Type Box Field x,y,selected End Type For i = 0 To 19 b.box = New box b\x = Rnd(750) b\y = Rnd(550) Next Repeat Cls ; Selecting If MouseDown(1) Then If Not Selecting Then Selecting = 1 StartX = MouseX() StartY = MouseY() For b.box = Each box b\selected = 0 If MouseOver(b\x,b\y,20,20) Then b\selected = 1 Next Else ZielX = MouseX() ZielY = MouseY() EndIf Else Selecting = 0 For b.box = Each box If b\x > StartX And b\x < ZielX And b\y > StartY And b\y < ZielY Then b\selected = 1 Next EndIf ; Draw selection If Selecting Then Line StartX,StartY,MouseX(),StartY Line StartX,MouseY(),MouseX(),MouseY() Line StartX,StartY,StartX,MouseY() Line MouseX(), StartY, MouseX(), MouseY() EndIf ; Draw boxes For b.box = Each box If b\selected Then Color 0,128,0 Else Color 128,128,128 EndIf Rect b\x, b\y, 20, 20 Next Flip Until KeyHit(1) End Function MouseOver(x,y,w,h) mx = MouseX() my = MouseY() If mx > x And mx < x+w And my > y And my < y+h Return 1 End Function |
||
www.funforge.org
Ich hasse WASD-Steuerung. Man kann alles sagen, man muss es nur vernünftig begründen können. |
Schoasch |
Do, Mai 01, 2008 15:30 Antworten mit Zitat |
|
---|---|---|
funkt super! danke @ all =)) | ||
Übersicht BlitzBasic Beginners-Corner
Powered by phpBB © 2001 - 2006, phpBB Group