Seite 1 von 2

Mauszeiger

Verfasst: 26.04.2013 14:43
von ToolBoy
Hallo @All

Hilfe, warum zittert der Mauszeiger, wenn PureBasic pb Dateien oder Exen unter Win 7 laufen, im System ME und XP bleibt der Mauszeiger ruhig nicht.

Gruß ToolBoy

Re: Mauszeiger

Verfasst: 26.04.2013 14:48
von NicTheQuick
Du nutzt noch ME? :freak:

Aber mal davon abgesehen. Was darf man unter "Zittern" verstehen? Und ist das bei jedem PB-Programm oder nur bei einem bestimmten? Wie so oft fehlen die wichtigsten Informationen wie PB-Version, Code, 32 oder 64 Bit, mit oder ohne Debugger, usw...

Re: Mauszeiger

Verfasst: 26.04.2013 15:02
von ToolBoy
Zittern wie Espenlaub, man kann den Cursor nur ahnen.
Unter Win 7 32 Bit, bei PB 4.0 bis 5.10, bei allen PB Pogrammen, sobald der Cursor auf ein Gadget steht.
Natürlich habe ich hier schon gesucht und nichts gefunden, außer die, die das gleiche Problem haben, was da aber immer im Sande verläuft, sonst würde ich nicht fragen.

Nachtrag:

Der Mauszeiger zittert auf jedes Gadget, egal ob die Maus bewegt wird oder nicht. Auch eine andere Maus bringt keine Änderung.
Wenn ich in Win 7 die Mauseigenschaften auf schnell ändere, zittert der Zeiger schneller, stelle ich auf langsam zittert der Zeiger langsamer.

Re: Mauszeiger

Verfasst: 26.04.2013 17:57
von Bisonte
Ist es eine Funkmaus ? Dann könnten andere Signale wie Handy/Wlan usw. stören.
Ist es eine optische Maus ?
Hier könnte es an "verdreckter" Linse liegen oder aber die Unterlage auf der die Maus liegt,
lässt den Lichtstrahl brechen... hatte mal auf einem dunklen Schreibtisch mit Hochglanzlack
solche Probleme... Mousepad drunter, weg war das zucken.
(Wahrscheinlicherer Fall)

Re: Mauszeiger

Verfasst: 26.04.2013 18:20
von ToolBoy
Ich danke dir.

Ja eine Funkmaus. Problem liegt aber wahrscheinlich an PureBasic mit Win 7

IF... Else... Endif lässt den Cursor unter Win 7 flimmern.

Bei Einzelabfragen flimmert nichts mehr.

Ist zwar schlecht 60 x IF... Endif aber so geht es.

Wenn es wieder auftaucht Funkmaus ab.

Gruß ToolBoy

Re: Mauszeiger

Verfasst: 26.04.2013 18:32
von Kurzer
Hmm, ich habe auch PureBasic Programme unter Win 7 laufen und da zittert nichts.

Wenn Du "If then Else" schreibst, deutet es ja darauf hin, dass das Problem nur Dein selbst geschriebenes Programm betrifft.
Zeig doch mal ein bisschen Quellcode den wir usn angucken können. Evtl. ist das Problem "selbstgemacht".

Re: Mauszeiger

Verfasst: 27.04.2013 05:59
von ToolBoy

Code: Alles auswählen

Macro GET(AC)
    GetCursorPos_(mouse.POINT) 
  If mouse\x>=GadgetRect\Left And mouse\x<=GadgetRect\right And mouse\y>=GadgetRect\Top And mouse\y<=GadgetRect\bottom 
  If AC > 0 And AC < 121 
    SetSystemCursor_(LoadCursor_(0,#IDC_HAND),#OCR_NORMAL) 
    EndIf
    GTX = AC 
    GT$ = GetGadgetText(GTX)      
    If AC > 500 And AC < 521 And GT$ <> ""
      SetSystemCursor_(LoadCursor_(0,#IDC_HAND),#OCR_NORMAL)
      HideGadget(AC + 40,0)
      HideGadget(AC + 100,0)
      EndIf     
EndMacro

Das Macro wird 60 x in einer Schleife durchlaufen.
In ME und XP klappt das ohne Mausflimmern.

Re: Mauszeiger

Verfasst: 27.04.2013 09:09
von Kurzer
Hast Du auch code der direkt kompilierbar ist?
Das Macro alleine hilft ja jetzt nicht viel.

Re: Mauszeiger

Verfasst: 27.04.2013 09:15
von Josh
ToolBoy hat geschrieben:Das Macro wird 60 x in einer Schleife durchlaufen.
In ME und XP klappt das ohne Mausflimmern.
Viel Interesse an einer Lösung deines Problems dürftest du ja nicht haben:

Wie wäre es mit einem lauffähigen Beispiel?
Wie wäre es mit einem ordentlich formatierten Code?
Wie wäre es, wenn alle If auch ein EndIf hätten?

Hier gibt es verdammt viele, die gerne helfen, aber verdammt wenige, die deine Arbeit machen wollen.

Re: Mauszeiger

Verfasst: 28.04.2013 13:56
von ToolBoy
Das Problem ist doch gelöst, es würden 60 Einzelabfragen Programmiert, ohne Macro.

In dem Code ist es dich selbstverständlich, dass aus einer IF abfrage das Macro durchlaufen wird und am Ende 60 X ein Endif existiert.

Code: Alles auswählen

If GetWindowRect_(GadgetID(1),GadgetRect.RECT) 
  GET(1) Zum Magro Macro GET(AC)
  ElseIf GetWindowRect_(GadgetID(3),GadgetRect.RECT) 
  GET(3) ; das bis GET(60) also 60 x
  ; weiter bis GET(60) 
  ;
 Else ; natürlich auch die Else
 SetSystemCursor_(LoadCursor_(0,#IDC_ARROW),#OCR_NORMAL) 
  
Endif : Endif ; und 60 x Endif



Das Gesamtpaket hat 2 MB und ist ohne das Zubehör nicht lauffähig.
Es kommt dann nur die Meldung: Fix.Exe kann nicht gestartet werden.
Es gibt einfach neben der ME-XP Version eine WIN7 Version, wie so oft.