Seite 1 von 1

ShowCursor Problem

Verfasst: 09.11.2012 20:01
von gnaps
Hallo Forum,

ich habe folgendes Problem mit ShowCursor_(0):

Ich habe ein Programm das mir verschiedene Grafiken anzeigt, diese Grafiken
sind vollflächig auf dem Bildschirm zu sehen, hier störte es mich, dass die Maus
immer angezeigt wird.
Nun habe ich ShowCursor_(0) eingebunden wenn ich die Grafiken anzeigen lasse
und die Maus verschwindet. Gut so weit.
Verlasse ich die Grafikanzeige und stelle im Hauptfenster die Mausanzeige
auf an, dann funktioniert dies auch sobald ich in den Anzeige-Modus gehe.

Jetzt kommts:
Stelle ich die Mausanzeige wieder auf ShowCursor_(0) dann wird die Maus
trotzdem angezeigt obwohl diese jetzt verschwinden sollte.

Verlasse ich das Programm komplett und starte neu wir die Maus wieder versteckt.

Warum ist das so?

Re: ShowCursor Problem

Verfasst: 09.11.2012 20:06
von NicknameFJ
Hi gnaps,

ShowCursor_() hat einen integrierten Zähler, d.h. zu jedem Ausschalten des Cursors muss es ein Einschalten geben und umgekehrt.

Kann es sein dass Du den Cursors öfter ein- als ausschaltest.

sh. hier:
http://msdn.microsoft.com/de-de/library ... 85%29.aspx

Grüße

NicknameFJ


PS: Lass Dir mal den Rückgabewert (=Stand des aktuellen Zählers) von ShowCursor() anzeigen.

Re: ShowCursor Problem

Verfasst: 09.11.2012 20:30
von gnaps
Hallo NicknameFJ,

danke für die schnelle Antwort.

Ich blende die Maus wenn ich in den Grafik-Anzeigemodus gehe 1x aus
und beim verlassen wieder 1x an.

Dennoch ist der Fehler da.

Hat das ganze mir dem Window zu tun ?
Ich habe bis zu 8 Grafiken die haben jeweils ihr eigenes Window,
liegt hier das Problem ?

Wie bekomme ich den Rückgabewert (=Stand des aktuellen Zählers) von ShowCursor() ??

Gruß
gnaps

Re: ShowCursor Problem

Verfasst: 09.11.2012 20:52
von NicknameFJ
gnaps hat geschrieben:
Wie bekomme ich den Rückgabewert (=Stand des aktuellen Zählers) von ShowCursor() ??

Die Funktion ShowCursor_() gibt den Wert zurück.

Du kannst den Rückgabewert einer Variablen zuweisen:

Ergebnis = ShowCursor_()

und dann ausgeben

debug Ergebnis

oder direkt
debug Showcursor_()

Achtung Stolperfalle: Debug funktioniert nur in der IDE nicht in der EXE. In der EXE wird die Zeile mit dem Debug überhaupt nicht ausgeführt und dann ShowCursors_() auch nicht aufgerufen. Daher besser den Weg mit Zuweisen in Variablen gehen

NicknameFJ

Re: ShowCursor Problem

Verfasst: 09.11.2012 21:14
von gnaps
Hallo,

danke für die Antwort, jedoch bekomme ich eine Fehlermeldung vom Debugger

bei
Debug ShowCursor_()

und bei
maus.i=ShowCursor_()

was mache ich falsch.

Gruß
gnaps

Re: ShowCursor Problem

Verfasst: 09.11.2012 22:21
von NicknameFJ
Was für eine Fehlermeldung?

Du hast die 0 bzw. die 1 aber schon beim Aufruf von

Debug ShowCursor_()

mit in die Klammer aufgenommen, oder?

Also z.B. debug ShowCursor(0) bzw.
debug ShowCursor_(1)

NIcknameFJ

Re: ShowCursor Problem

Verfasst: 09.11.2012 22:26
von Regenduft
Ich glaube der ShowCursor_() wird ab und zu auch mal automatisch "getriggert". Ob da Windows oder PureBasic schuld ist (und ob's überhaupt wirklich so ist), da bin ich mir nichtmehr sicher. Habe das schon lange nichtmehr gebraucht.

Code: Alles auswählen

Procedure MyShowCursor(State)
  If State
    While ShowCursor_(#True) < 0 : Wend
  Else
    While ShowCursor_(#False) >= 0 : Wend
  EndIf
EndProcedure