Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Maus über Event... Fehler !?!

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
isiprimax



Anmeldungsdatum: 02.01.2009
Beiträge: 77

BeitragVerfasst am: 25.01.2009, 01:31    Titel: Maus über Event... Fehler !?! Antworten mit Zitat

Hi,

Ich versuche mich grade an kleinen Spielchen. Nun will ich das über Maus steuern. Wen ich nun so die Werte auslese (kurzer code!)

Code:

'Wieso wird die X Koordinate nicht richtig zurückgegeben?
#Include "fbgfx.bi"
Using FB

Screen 18

Dim e As EVENT
Dim As Integer mausx,mausy

Do
   Sleep 1
   If (ScreenEvent(@e)) Then
      Select Case e.type
         Case event_mouse_button_press
            mausx = e.x
            mausy = e.y
            Print "Maus x:";mausx;" y:";mausy
      End Select
   EndIf
Loop Until InKey = Chr(27)
Sleep


bekomme ich als X Koordinate nur 1 und die Y Koordinate stimmt. Ich weiss nun auch nicht ob ich den Fehler mache, oder in FB der Fehler steckt.

FB_Versionen : 0.20 und 0.21 beides selbe situation!

mfg
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
isiprimax



Anmeldungsdatum: 02.01.2009
Beiträge: 77

BeitragVerfasst am: 25.01.2009, 01:43    Titel: Antworten mit Zitat

... War falsch
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 25.01.2009, 12:02    Titel: Antworten mit Zitat

e.x scheint mir hier den Mausbutton zurückzuliefern. neutral Dann also ein Fehler des fbc.
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Muttonhead



Anmeldungsdatum: 26.08.2008
Beiträge: 565
Wohnort: Jüterbog

BeitragVerfasst am: 25.01.2009, 21:47    Titel: Antworten mit Zitat

Ich glaub das ist kein Fehler von FB sondern liegt an der Arbeitsweise von
SCREENEVENT. Im UDT e liegt immer das letzte Ereignis, und das ist der Klick mit der linken Maustaste, deswegen ist dein e.x =1 weil in dem Fall die gleiche Speicherstelle mit der Information für die gedrückte Maustaste gefüttert wird (also eigentlich e.button)

deine Mauskoordinaten kannst du also nicht bei event_mouse_button_press ermitteln sondern nur bei
EVENT_MOUSE_MOVE.

Denn nur bei dem Event enthält dein UDT e auch die richtigen Daten


Code:
#INCLUDE "fbgfx.bi"
USING FB

SCREEN 18

DIM e AS EVENT
DIM AS INTEGER mausx,mausy

DO
   SLEEP 1
   IF (SCREENEVENT(@e)) THEN
      SELECT CASE e.TYPE
         CASE event_mouse_button_press
              PRINT "Maus x:";mausx;" y:";mausy
         case EVENT_MOUSE_MOVE
            mausx = e.x
            mausy = e.y
      END SELECT
   ENDIF
LOOP UNTIL INKEY = CHR(27)
SLEEP


Mutton
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz