Mauszeiger

Anfängerfragen zum Programmieren mit PureBasic.
ToolBoy
Beiträge: 42
Registriert: 01.01.2010 16:19
Computerausstattung: Win 98ME, XP Home und Pro, Win2000 und WinVista32 Home Pre.
Wohnort: Duisburg

Mauszeiger

Beitrag 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
Windows 7 U. Windows 10 pro.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: Mauszeiger

Beitrag 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...
ToolBoy
Beiträge: 42
Registriert: 01.01.2010 16:19
Computerausstattung: Win 98ME, XP Home und Pro, Win2000 und WinVista32 Home Pre.
Wohnort: Duisburg

Re: Mauszeiger

Beitrag 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.
Windows 7 U. Windows 10 pro.
Benutzeravatar
Bisonte
Beiträge: 2468
Registriert: 01.04.2007 20:18

Re: Mauszeiger

Beitrag 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)
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
ToolBoy
Beiträge: 42
Registriert: 01.01.2010 16:19
Computerausstattung: Win 98ME, XP Home und Pro, Win2000 und WinVista32 Home Pre.
Wohnort: Duisburg

Re: Mauszeiger

Beitrag 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
Windows 7 U. Windows 10 pro.
Benutzeravatar
Kurzer
Beiträge: 1617
Registriert: 25.04.2006 17:29
Wohnort: Nähe Hamburg

Re: Mauszeiger

Beitrag 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".
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.12 x64, OS: Win 11 24H2 x64, Desktopscaling: 150%, CPU: I7 12700 H, RAM: 32 GB, GPU: Intel(R) Iris(R) Xe Graphics | NVIDIA GeForce RTX 3070
Useralter in 2025: 57 Jahre.
ToolBoy
Beiträge: 42
Registriert: 01.01.2010 16:19
Computerausstattung: Win 98ME, XP Home und Pro, Win2000 und WinVista32 Home Pre.
Wohnort: Duisburg

Re: Mauszeiger

Beitrag 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.
Windows 7 U. Windows 10 pro.
Benutzeravatar
Kurzer
Beiträge: 1617
Registriert: 25.04.2006 17:29
Wohnort: Nähe Hamburg

Re: Mauszeiger

Beitrag von Kurzer »

Hast Du auch code der direkt kompilierbar ist?
Das Macro alleine hilft ja jetzt nicht viel.
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.12 x64, OS: Win 11 24H2 x64, Desktopscaling: 150%, CPU: I7 12700 H, RAM: 32 GB, GPU: Intel(R) Iris(R) Xe Graphics | NVIDIA GeForce RTX 3070
Useralter in 2025: 57 Jahre.
Benutzeravatar
Josh
Beiträge: 1028
Registriert: 04.08.2009 17:24

Re: Mauszeiger

Beitrag 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.
ToolBoy
Beiträge: 42
Registriert: 01.01.2010 16:19
Computerausstattung: Win 98ME, XP Home und Pro, Win2000 und WinVista32 Home Pre.
Wohnort: Duisburg

Re: Mauszeiger

Beitrag 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.
Windows 7 U. Windows 10 pro.
Antworten