Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Gefrierbrand

Anmeldungsdatum: 05.12.2005 Beiträge: 12 Wohnort: Estenfeld
|
Verfasst am: 05.12.2005, 20:49 Titel: Mauszeiger |
|
|
Hallo erstmal
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 |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 05.12.2005, 21:06 Titel: |
|
|
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
jb |
|
Nach oben |
|
 |
Gefrierbrand

Anmeldungsdatum: 05.12.2005 Beiträge: 12 Wohnort: Estenfeld
|
Verfasst am: 05.12.2005, 21:08 Titel: |
|
|
Wow, das war aber schnell... werde mich mal danach umsehen!
Thx _________________
 |
|
Nach oben |
|
 |
Skilltronic

Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 05.12.2005, 23:18 Titel: |
|
|
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 |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 05.12.2005, 23:31 Titel: |
|
|
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 |
|
 |
Skilltronic

Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 05.12.2005, 23:46 Titel: |
|
|
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 |
|
 |
|