Seite 1 von 1

Mouse-Position Problem

Verfasst: 22.04.2008 17:02
von Tombi
Erst der Code, dann das Problem :mrgreen:

Code: Alles auswählen


;Ab hier sind Variablen vorhanden, die vorher definiert werden, wurde
;bereits gebuggt. Also an diesen Variablen liegt`s nicht...
menuon = 1
menuwidth = 50
menuheight = 50

Procedure Click_Menu()
  If menuon 
    
    MouseX = MouseX()
    MouseY = MouseY()
    t = 0
    
    ResetList(Menu())
    While NextElement(Menu())
    t+1
    z = screenX-(t*menuwidth-menuwidth)
    
    If MouseX >= screenX-(t*menuwidth) And MouseY < menuheight And MouseX <= z
      Debug "Name des ausgewählten Menus: "+Menu()\Name
    EndIf
    
    Wend   
  EndIf
EndProcedure
Funktioniert nun so halb. Es soll also oben rechts das eingefügte Menü verlinkt werden.

Verfasst: 22.04.2008 17:12
von STARGÅTE
du stellt immer wieder nur solche halben fragen.

1. Der Code den du postest, sollte ausführbar sein, damit man das Problem selber sehen kann.
2. Es reicht nicht nur das zu Posten wo du denkst das dort der Fehler liegen könnte, auch wenn du allesdebbugt hast.

EDIT da feht die 4. Bedingung der MausFläche:
vllt hilft dir das hier:

Code: Alles auswählen

Procedure MouseInBox(x,y,Width,Height)
 If MouseX() > x And MouseX() < x+Width And MouseX() > y And MouseX() < y+Height
  ProcedureReturn 1
 EndIf
EndProcedure

Verfasst: 22.04.2008 17:50
von Tombi
Nicht nur im Menu oben rechts wird "Bereich" im Debug-Fenster angezeigt, sondern auch in Abständen untendrunter, aber nur unter`m Menu, nicht links davon.

Code: Alles auswählen

Procedure Click_Menu()
  If menuon 
    
    MouseX = MouseX()
    MouseY = MouseY()
    t = 0
    
    ResetList(Menu())
    While NextElement(Menu())
    t+1
    z = screenX-(t*menuwidth-menuwidth)
    menuheight = 50
    If MouseX > screenX-(t*menuwidth)  And MouseX <= z And MouseY < menuheight And MouseY > 0
      Debug menuheight
    EndIf
    
    Wend   
  EndIf
EndProcedure
Wenn ich jetzt MouseY < menuheight in MouseY < 50 umändere, habe ich keine Probleme. menuheight enthält jedoch die Zahl 50. Auch wenn ich Sie 1 Schritt vorher neu setze auf 50 habe ich das gleiche Problem.

Kann es schlecht beschreiben.

Verfasst: 22.04.2008 18:01
von Fluid Byte
Es fehlt außerdem das Gleichheitszeichen: "x >= width" & "y >= height"

Verfasst: 22.04.2008 18:23
von Tombi
Fluid Byte hat geschrieben:Es fehlt außerdem das Gleichheitszeichen: "x >= width" & "y >= height"
Ändert nicht mein Problem!

Verfasst: 22.04.2008 19:42
von Fluid Byte
Poste erstmal lauffähigen code, dann reden wir vielleicht weiter.

Verfasst: 22.04.2008 19:45
von tobe
ich krieg bei deinem code nur:

Code: Alles auswählen

Zeile : 14
Menu() is not a function, array, macro or linked list
edit: oh zu langsam ;)

Verfasst: 22.04.2008 20:22
von Tombi
Bin zu Faul das alles in eine Datei zu quetschen. Vorallem wegen den ganzen Ini-Dateien. Hoffe jemand ist so nett und schaut sich das genauer an.

Oben genannte Procedure in: Menu_draw.pb
Start-Datei in: Start.pb

Download
Dateien.zip

Verfasst: 22.04.2008 22:07
von Riacon
ich würde mir mal die variablentypen ansehen, aber hab dazu grad keine lust. also mußt du dich wohl dazu aufraffen, auch wenns schwer fällt :mrgreen:

ein lauffähiges beispiel<>der ganze code
wozu gibts copy&paste. kopier die relevanten teile zusammen und teste/poste