Tutorial
Bildschirmschoner Erweiterungen
1. Testmodus
2. Abbruch bei Mausbewegung
_ 2.1. Mausabfrage
_ 2.2. ScreenEvent ab FB 0.17b
3. Kleine bunte Animation
2. Abbruch bei Mausbewegung
Die meisten Screensaver reagieren auch auf eine Mausbewegung und beenden bei der kleinsten Berührung.
Das muss sich auch in FreeBASIC realisieren lassen.
Anmerkung; Meine Erfahrung mit verschiedenen Windows - und FreeBASIC - Versionen
- die Mausabfrage, wie in 2.1 beschrieben, funktioniert unter XP (nicht immer) doch!
- -(es funktioniert! Danke an Eternal_pain der sich für eine Lösung die Nacht bis 3 Uhr morgens um die Ohren schlug ;)
- der ScreenEvent, wie in 2.2 beschrieben, funktionierte ab FB 0.17b unter ME und XP immer.
2.1. Mausabfrage
Man fragt die Position des Mousecursors (Mauspfeil) vor der DO..LOOP Schleife ab und speichert sie z.B. als mx_alt und my_alt.
In der DO..LOOP Schleife fragt man die Mausposition wieder in mx_neu und my_neu ab. Ein Vergleich zeigt dann ob die Maus bewegt wurde.
Wenn mx_neu (ungleich) mx_alt ist or (oder) my_neu (ungleich) my_alt ist, hat die Maus gezittert.
...
Sub ShowScreensaver
Dim As Integer mx_alt, my_alt, mx_neu, my_neu
' Vollbild, kein weiterer Moduswechsel
Screen 18,32,, 1 Or 4
' Maussymbol nicht anzeigen
Setmouse ,,0
Sleep 50 'nach dieser Verzögerung ist die Mausabfrage möglich; Danke Eternal_pain!!
' Mausposition merken
Getmouse mx_alt, my_alt
...
Do
...
Getmouse mx_neu, my_neu
'wurde die Maus bewegt?
If mx_neu<>mx_alt Or my_neu<>my_alt Or Inkey <> "" Then
Exit Sub
End If
Loop
End Sub
...
Ach ja, weil der Mousecursor eigentlich nur stört, kann man ihn mit Setmouse ,,0 (1 = ein, 0 = aus) ausschalten.
Gehe zu Seite
1 2 3 4
Zusätzliche Informationen und Funktionen |
- Das Tutorial wurde am 20.06.2007 von Volta angelegt.
- Die aktuellste Version wurde am 15.08.2007 von Volta gespeichert.
|
|