ShowCursor Problem

Anfängerfragen zum Programmieren mit PureBasic.
gnaps
Beiträge: 151
Registriert: 02.09.2008 13:02

ShowCursor Problem

Beitrag 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?
PureBasic Vollversion V 5.71 für Windows - Windows 10 (64)
Benutzeravatar
NicknameFJ
Beiträge: 324
Registriert: 03.06.2007 14:36
Wohnort: Von der Sonne aus gesehen der dritte Planet

Re: ShowCursor Problem

Beitrag 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.
PS: Alle im Text enthaltenen Schreibfehler sind beabsichtigt und dienen der Belustigung aller

Bild
gnaps
Beiträge: 151
Registriert: 02.09.2008 13:02

Re: ShowCursor Problem

Beitrag 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
PureBasic Vollversion V 5.71 für Windows - Windows 10 (64)
Benutzeravatar
NicknameFJ
Beiträge: 324
Registriert: 03.06.2007 14:36
Wohnort: Von der Sonne aus gesehen der dritte Planet

Re: ShowCursor Problem

Beitrag 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
PS: Alle im Text enthaltenen Schreibfehler sind beabsichtigt und dienen der Belustigung aller

Bild
gnaps
Beiträge: 151
Registriert: 02.09.2008 13:02

Re: ShowCursor Problem

Beitrag 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
PureBasic Vollversion V 5.71 für Windows - Windows 10 (64)
Benutzeravatar
NicknameFJ
Beiträge: 324
Registriert: 03.06.2007 14:36
Wohnort: Von der Sonne aus gesehen der dritte Planet

Re: ShowCursor Problem

Beitrag 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
PS: Alle im Text enthaltenen Schreibfehler sind beabsichtigt und dienen der Belustigung aller

Bild
Benutzeravatar
Regenduft
Beiträge: 574
Registriert: 25.03.2008 15:07
Wohnort: THE LÄÄÄND!

Re: ShowCursor Problem

Beitrag 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
PureBasic 5.73 LTE x86/x64 | Windows 7 (x64)
Antworten