 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Dusky_Joe

Anmeldungsdatum: 07.01.2005 Beiträge: 1007 Wohnort: Regensburg/Oberpfalz
|
Verfasst am: 03.03.2005, 19:04 Titel: Mausfunktionen: Koordinaten/Mausrad setzen? |
|
|
Hi!
Ich schreibe gerade ein Programm, das nur die in freeBASIC integrierten Mausfunktionen benutzt, keine externen DLLs wie SDL o.ä.
Mit GETMOUSE kann man die Koordinaten der Maus abfragen. Ist es auch möglich, die Koordinaten bzw die Stellung des Mausrades im Programm zu beeinflussen?
Das Handbuch erwähnt keinen Befehl wie SETMOUSE o.ä.
Thx für eure AWs! _________________ fully biological degradable
Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet. |
|
Nach oben |
|
 |
Mecki Igel

Anmeldungsdatum: 10.09.2004 Beiträge: 985 Wohnort: Niederbayern
|
|
Nach oben |
|
 |
Stephan

Anmeldungsdatum: 05.10.2004 Beiträge: 358 Wohnort: Hessen - 20km Nördlich von Frankfurt am Main
|
Verfasst am: 04.03.2005, 16:59 Titel: |
|
|
du könntest die Win API benutzen,falles es ein WIndows programm ist.
dort gibt es eine funktion SETCURSORPOS , damit geht das recht einfach.
einfach einen type anlegen,der X & Y koordinaten ethält,und positionieren. _________________ 'Wir schätzen die Zeit erst, wenn uns nicht mehr viel davon geblieben ist.'
Leo Tolstoi |
|
Nach oben |
|
 |
Dusky_Joe

Anmeldungsdatum: 07.01.2005 Beiträge: 1007 Wohnort: Regensburg/Oberpfalz
|
Verfasst am: 04.03.2005, 20:45 Titel: |
|
|
Hmmm.... klingt interessant...
Aber: Ich schreibe im SCREEN 19,8,2,1 da werden Win-Funktionen wohl ned so gut funzen, oder?
Wenn nämlich das Prog gestartet wird, is der Mauscursor automatisch in der Bildschirmmitte, hat also mit der Win-Pos nix zu tun...
trotzdem danke für den Tipp, werds ausnutzen, wenn ich mal ne Win-Anweisung hernehme, bei der ich das brauche  _________________ fully biological degradable
Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet. |
|
Nach oben |
|
 |
Stephan

Anmeldungsdatum: 05.10.2004 Beiträge: 358 Wohnort: Hessen - 20km Nördlich von Frankfurt am Main
|
Verfasst am: 04.03.2005, 22:26 Titel: |
|
|
das hat nichts mit der auflösung zu tuhen,
den mauszeiger kannst du immer positionieren,völlig egal welches programm & welche auflösung.
Deklaration:
Code: |
DECLARE FUNCTION SetCursorPos LIB "USER32.DLL" ALIAS "SetCursorPos" (BYVAL x AS LONG, BYVAL y AS LONG) AS LONG
|
Aufruf
Code: |
x=100 : y=200
SetCursorPos x,y
|
halt entsprechend nach FreeBasic angepasst.
und per API ist es auch kein problem den Mauscursor zu ändern,
im grunde genommen macht eine entsprechend (wenn vorhanden) FreeBasic
funktion auch nichts anderes. _________________ 'Wir schätzen die Zeit erst, wenn uns nicht mehr viel davon geblieben ist.'
Leo Tolstoi |
|
Nach oben |
|
 |
Dusky_Joe

Anmeldungsdatum: 07.01.2005 Beiträge: 1007 Wohnort: Regensburg/Oberpfalz
|
Verfasst am: 05.03.2005, 16:01 Titel: |
|
|
Die Auflösung war es auch gar nicht, auf die ich hinaus wollte. Ich war mir nur nicht ganz sicher, ob es auch im Vollbild-Modus funktioniert. Sollte aber sicher auch funktionieren *g*
Naja, egal, jetzt ist ja die 0.12 da, da gibts auch schon ein integriertes SETMOUSE *g*
Was ich daran aber vermisse, ist die Möglichkeit, das Mausrad zu beeinflussen; die Syntax ist
SETMOUSE x, y, sichtbar
Was ist das eigentlich für ein Wert, der da Zurückgegeben wird?
DECLARE FUNCTION SetCursorPos (...) AS LONG
Muss ja was zu bedeuten haben, oder? _________________ fully biological degradable
Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet. |
|
Nach oben |
|
 |
holger_b71
Anmeldungsdatum: 14.09.2005 Beiträge: 12
|
Verfasst am: 27.01.2006, 09:48 Titel: Maus im Textmodus? |
|
|
Kann man die Maus-Funktionen auch im Text-/Konsolenmodus
verwenden?
(GetMouse funktioniert offensichtlich nur bei Grafik)
Gruß
H. |
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 27.01.2006, 11:57 Titel: |
|
|
Wie kann ich die gedrückten Mausbuttons zurücksetzen?
Wenn ich die Maus mit 'nem Rechtsklick zum Abbrechen in der Dos-Box verwende,
ist bei der nächsten Abfrage offensichtlich noch ein 'KeyPress' vorhanden und
die Abfrage funktioniert nicht(richtig).
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
 |
Dusky_Joe

Anmeldungsdatum: 07.01.2005 Beiträge: 1007 Wohnort: Regensburg/Oberpfalz
|
Verfasst am: 27.01.2006, 21:02 Titel: |
|
|
@ytwinky
Evtl. hast du bei deiner Abfrage ein GetMouse vergessen; bei diesem Code wirst du feststellen, dass die Buttons automatisch zurückgesetzt werden:
Code: | Option Explicit
Dim As Integer mX, mY, mW, mB
'Screen 14
Do
GetMouse mX, mY, mW, mB
Locate 1
? Using "X: ####"; mX
? Using "Y: ####"; mY
? Using "Wheel: ####"; mW
? Using "Buttons: &"; Bin(mB, 8)
Sleep 1
Loop Until Len(Inkey) |
@ holger_b71
As you see, dieses Beispiel fuzt sowohl in Konsolen- als auch in Gfx-Modi.
Das kannst du auch aus der Referenz herauslesen:
http://fb.exp-soft.de/r.php?s=GETMOUSE
Allerdings musst du dazu eine FB-Version ab 0.14 haben... oder v0.15b? Ich bin mir nicht ganz sicher, du solltest aber zumindest die letzte stable Version (also 0.15) benutzen, besser noch die aktuelle Beta-Version 0.16b.
Nur so nebenbei: Die Position des MAUSRADES kann man - auch fast 10 Monate nach der Thread-Eröffnung noch nicht beeinflussen, wie? _________________ fully biological degradable
Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet. |
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 27.01.2006, 21:17 Titel: |
|
|
Danke Dusty,
ich schau mal nach..
[Edit]
..so, ich hab jetzt am Anfang und am Ende eine GetMouse(..)-Abfrage eingesetzt.
ButKeyPr.Bas läuft auch fast zu meiner Zufriedenheit(deshalb ist es auch auf ytwinky.freebasic.de verfügbar).
Wenn ich allerdings, um das Fenster zu schließen, irgendwohin klicke(mit Rechts) und danach mit Linksklick das Kontext-Menü schließe,
KANN es sein, daß der nächste Aufruf trotzdem noch eine gedrückte Taste erhält..
Könnte eine Schleife zur Abfrage helfen oder erkennt GetMouse() die Klicks doch nicht so, wie ich das möchte?
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
 |
psygate
Anmeldungsdatum: 05.04.2005 Beiträge: 304 Wohnort: Wien und der Computer
|
Verfasst am: 28.01.2006, 00:49 Titel: |
|
|
Mein Beitrag:
Zeichne eine 16x16 oder 32x32 bitmap cursor datei und speichere sie. dann lädtst du sie in ein image oder ein array und setzt
Code: |
'PSEUDOCODE
setmouse ,,1 'sodass die Maus verschwindet.
while inkey$=""
getmouse xm,ym
put xm,ym,mousebild
|
|
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 28.01.2006, 01:19 Titel: |
|
|
Danke psygate,
aber das verstehe ich jetzt nicht mehr
Ich schau es mir an, wenn ich ausgeschlafen habe..
[Edit]
Also ButKeyPr.Bas gibts erstmal nicht mehr.. ConText hat Folgendes geschrieben: | Option Explicit
Public Sub ResetMaus()
Asm
Xor AX, AX 'Schnellster Befehl, um den Akku zu löschen; Funktion 0=MausReset
' Int &h33 '&h33 ist der MausInterrupt..
End Asm
?"Ein sch”nes Programm, leider kann FB-ASM keine Interrupts ausf?hren.."
End Sub
ResetMaus
Sleep
End | Sowas schwebte mir eigentlich vor..
Tschüsssiiiii
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO..
Zuletzt bearbeitet von ytwinky am 29.01.2006, 18:03, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 28.01.2006, 08:53 Titel: |
|
|
@psygate
Hast du etwa darauf geantwortet?
Mecki hat Folgendes geschrieben: | Hi Dusky_Joe,
In Version 0.12 wirst du eine SETMOUSE-Funktion bekommen, die es dir erlaubt, die Mausposition und den Sichbarkeits-Flag zu setzen.
Was noch nicht geht ist, die Cursor-Gestalt zu verändern.
Grüßle,
Mecki
PS: sorry für die späte Antwort |
Wenn ja:
Der Post war vor dir hier im Forum.
(Du hast dich am 05.04.2005 Eingetragen und der Post ist von 04.03.2005)
 _________________ http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight |
|
Nach oben |
|
 |
holger_b71
Anmeldungsdatum: 14.09.2005 Beiträge: 12
|
Verfasst am: 28.01.2006, 19:41 Titel: |
|
|
@Dusky_Joe
Danke für Deine Antwort!
Bei mir kommt im Textmodus eine Fehlermeldung (v0.14):
libfb_io_mouse.c: (.text+0xfa): undefined reference
Noch eine Frage:
Du schreibtst die letzte Stable Version sei 0.15; im Download-Bereich
ist beim "Komplettpaket" die Version 0.14 dabei und als letzte Compiler-
Version 0.15b (also Beta, oder?).
Oder gibt es eine offizielle Download-Seite mit höheren/aktuelleren Versions-Nr.?
Gruß
H.
PS: Hier nochmal mein Dank an alle FB-Entwickler.
FB ist das, worauf ich jahrelang gewartet habe - DANKE!
 |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
 |
Devilkevin aka Kerstin

Anmeldungsdatum: 11.11.2004 Beiträge: 2532 Wohnort: nähe Mannheim
|
Verfasst am: 28.01.2006, 21:26 Titel: |
|
|
Sebastian hat Folgendes geschrieben: | Egal woher du die Version beziehst, musst du vorher die Alte deinstallieren!! Überinstallationen führen i.d.R. zu Katastrophen...
|
Oh ja
Is nicht sehr geschickt gemacht, allerdings installieren sich Compiler/Ide/Kommplettpakete mittlerweile in alle möglichen Verzeichnisse.
mal ist es C:\
mal C:\freeBASIC\
oder auch C:\Programme\freeBASIC
Man sollte sich mal auf was einigen
@Mecki: Update mal dein Kommpletpaket Download. Sowhol IDE als auch Compiler sind veraltet. _________________ www.piratenpartei.de |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
|
Nach oben |
|
 |
Mecki Igel

Anmeldungsdatum: 10.09.2004 Beiträge: 985 Wohnort: Niederbayern
|
|
Nach oben |
|
 |
|
|
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.
|
|