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:

Mauszeiger

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



Anmeldungsdatum: 05.12.2005
Beiträge: 12
Wohnort: Estenfeld

BeitragVerfasst am: 05.12.2005, 20:49    Titel: Mauszeiger Antworten mit Zitat

Hallo erstmal grinsen

Ich hab mir hier von dieser Seite eine Mausunterstützung (genaugenommen mausedeu.bas) für QB runtergeladen. Geht auch wunderbar. Nur hab ich da ein kleines Problem:

Wenn ich andere Elemente einbaue, z.B. Text oder Grafiken, verschwindet der Mauszeiger hinter diesen, egal an welcher Stelle im Code der Befehl, den zeiger sichtbar zu machen steht.

Da die mausroutiene praktischerweise auch gleich die X/Y Koordinaten in zwei einfache Variablen packt dachte ich mir nehm ich eben meinen eigenen Zeiger (für den Anfang ein einfaches Kreuz aus 2 Lines), aber logischerweise hinterlässt das Teil sprichwörtliche Spuren. ein CLS in die schleife mit einzubauen würde viel zu viel flimmern, und die alte Position mit schwarz (oder der jeweiligen Hintergrundfarbe) zu überpinseln geht nicht, da ich die alte Position des Mauszeigers ja nicht kenne.

Kennt jemand eine Möglichkeit, den Zeiger in den Vordergrund zu setzten, oder eine andere Lösung?
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name MSN Messenger
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 05.12.2005, 21:06    Titel: Antworten mit Zitat

Hallo!

Gegen das Flimmern: Verwende Doublebuffering. Du packst alles in eine große DO-LOOP Schleife,
zeichnest erst den Hintergrund und alles andere, dann erst den Mauszeiger, und zuletzt
kopierst du alles auf den Bildschirm.
Zume Thema Doublebuffering kannst du mal die Forensuche benutzen, das Thema gab's hier schon einige Male lächeln

jb
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Gefrierbrand



Anmeldungsdatum: 05.12.2005
Beiträge: 12
Wohnort: Estenfeld

BeitragVerfasst am: 05.12.2005, 21:08    Titel: Antworten mit Zitat

Wow, das war aber schnell... werde mich mal danach umsehen!
Thx
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name MSN Messenger
Skilltronic



Anmeldungsdatum: 10.09.2004
Beiträge: 1148
Wohnort: Köln

BeitragVerfasst am: 05.12.2005, 23:18    Titel: Antworten mit Zitat

Hallo

Ich hatte das Problem so gelöst, dass ich mit GET den Hintergrund hinter dem Mauszeiger gespeichert und mit PUT anschliessend wiederhergestellt habe. Also beim ersten Mal am Anfang den Hintergund speichern und den Pfeil oder was auch immer zeichnen. Dann jedesmal wenn der Zeiger versetzt wird - und nur dann, sonst flimmerts - den alten Hintergrund wieder Einsetzen, neuen Ausschnitt speichern, neuen Pfeil zeichnen und fertig. Die jeweils vorhergehenden Koordinaten muss sich das Programm dabei natürlich merken.

Gruss
Skilltronic
_________________
Elektronik und QB? www.skilltronics.de !
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2529
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 05.12.2005, 23:31    Titel: Antworten mit Zitat

Im Reich der CALL INTERRUPT-DOS-API-Funktionen gibt es sonst INT 33h, AX=0009h, um dem Mauszeiger eine eigene Gestalt zuweisen zu können.

Wenn komplexere Effekte benötigt werden, kann es sinnvoll sein, den Mauszeiger mit INT 33h/AX=0002h auszublenden (er wird intern aber immer noch voll verwaltet!) und mit normalen Grafikbefehlen den gewünschten Effekt zeichnen, z.B. grosses Fadenkreuz und Zugmodus in einem CAD-Programm.
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Skilltronic



Anmeldungsdatum: 10.09.2004
Beiträge: 1148
Wohnort: Köln

BeitragVerfasst am: 05.12.2005, 23:46    Titel: Antworten mit Zitat

Stimmt - das vergass ich zu erwähnen. Vorher natürlich die Anzeige des Originalmauszeiger abschalten. Das Programm MOUSEQB von qbasic.de hat dafür schon die Sub "MouseHide" eingebaut.

Gruss
Skilltronic
_________________
Elektronik und QB? www.skilltronics.de !
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. 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