Mousebutton() funktioniert nicht

Anfängerfragen zum Programmieren mit PureBasic.
PB42
Beiträge: 243
Registriert: 13.10.2005 03:21

Mousebutton() funktioniert nicht

Beitrag von PB42 »

Hallo,

mich würde mal interessieren, warum in meinem Testcode der Befehl Mousebutton() nicht funktioniert. Stattdessen verschwindet der Mauszeiger komplett. Das Programm soll ein magisches Auge imitieren und auffächern. Der Code:

Code: Alles auswählen

InitSprite()
InitMouse()
OpenWindow(0,0,0,600,400,"",#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget)
OpenWindowedScreen(WindowID(0), 0, 0, 180, 260, 0, 0, 0)
CreateGadgetList(WindowID(0))

Repeat
  Event = WaitWindowEvent(1)
  
  x1 = 90
  x2 = 90
  y1 = 215
  y2 = 215
  
  ExamineMouse()
  If MouseButton(1)
  cnt = cnt + 1
  x1 = x1+cnt
  x2 = x2-cnt
  EndIf
  
  LoadFont(0,"Gulim",200,RGB(0,200,0))
  StartDrawing(ScreenOutput())
  FrontColor(RGB(0,0,0))
  DrawingFont(FontID(0))
  DrawText(-5,-5,"U")
  
  For i = 28 To 40
  Line(30,i,120,0)
  Next
  
  LineXY(90,-150,x1,y1,RGB(0,0,0))
  LineXY(90,-150,x2,y2,RGB(0,0,0))
  
  FillArea(90,210,RGB(0,0,0),RGB(0,200,0))
  FillArea(90,250,RGB(0,0,0),RGB(0,0,0))
  FillArea(90,20,RGB(0,0,0),RGB(0,0,0))
  
  Box(0,0,180,28,RGB(237,234,215))
  Box(0,20,24,240,RGB(237,234,215))
  Box(0,230,180,30,RGB(237,234,215))
  Box(155,20,25,220,RGB(237,234,215))
  
  StopDrawing()
  FlipBuffers()

Until event = #PB_Event_CloseWindow
Der Mauszeiger verschwindet erst dann, wenn ich ExamineMouse() einsetze. Und das ganze funktioniert auch nicht mit IF Mousebutton(#WM_Lbuttondown) gemäß der PureBasic-Hilfe.

Falls hier wieder einer ankommen sollte mit "jetzt nach 5 Jahren stellst du solche Anfängerfragen", stelle ich hier nochmals klar, daß ich PureBasic nur alle Jubel Jahre mal aktiviere. In einem meiner anderen Programme funktioniert MuoseButton(1) sehr wohl, allerdings ist das ein Spiel mit OpenScreen(), vielleicht geht Mousebutton() ja nur mit OpenScreen, aber dann könnte das auch mal in der Anleitung stehen. Danke für Hilfe. PB42

__________________________________________________
Code-Tags hinzugefügt
15.09.2010
RSBasic
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Mousebutton() funktioniert nicht

Beitrag von STARGÅTE »

  1. Code-Tags benutzen!
  2. Ne Maus zu benutzen (im Screen) ohne mauszeiger ist nervig !
  3. Mousebutton(#WM_Lbuttondown) steht so nirgends in der Hilfe !
  4. MouseButton(#PB_MouseButton_Left) funktioniert wunderbar in deinem Programm,
    einfach mal ein Debug "Drück" ins If schreiben und du siehst das es ein Ereignis gibt
MouseButton() funktioniert also sehr wohl !

Was dein programm machen soll, versteh ich jedoch nicht.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
HeX0R
Beiträge: 3042
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Re: Mousebutton() funktioniert nicht

Beitrag von HeX0R »

Er malt die ostfriesische Flagge (schwarzer Adler auf schwarzem Grund).

(So würde man zumindest was sehen:

Code: Alles auswählen

LineXY(90, -150, x1, y1, #White)
LineXY(90, -150, x2, y2, #White)
)
PB42
Beiträge: 243
Registriert: 13.10.2005 03:21

Re: Mousebutton() funktioniert nicht

Beitrag von PB42 »

Hallo stargate,

erstmal Danke, aber auch mit If MouseButton(#PB_MouseButton_Left) verschwindet der Mauszeiger gnadenlos und man kann das Programm nur noch abwürgen.

Magische Augen waren Röhren, die bevorzugt in der Rundfunktechnik eingesetzt wurden, ist aber schon einige Jahrzehnte her.

Stichwort "ostfriesische Flagge": Ich weiß zwar nicht, wieso mein Name PB42 hier scheinbar als Symbol für den puren Idioten steht, obwohl ich genauso selten hier poste wie ich PureBasic benutze, aber ich werde es wohl nicht ändern können.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Mousebutton() funktioniert nicht

Beitrag von STARGÅTE »

erstmal Danke, aber auch mit If MouseButton(#PB_MouseButton_Left) verschwindet der Mauszeiger gnadenlos und man kann das Programm nur noch abwürgen.
Ja natürlich :? wenn du InitMouse(), ExamineMouse() und MouseButton() verwendest, wird eine eigene Maus für den Screen verwendet!
Das heißt dann musst du selber den Mauszeiger zeichnen und die position mit MouseX() und MouseY() abfragen.
Die WindowsMaus wird dabei "deaktiviert".

Was du vermutlich haben willst, und warum du auch mti dem #WM_Lbuttondown daher gekommen bist, ist die Windows-Maus zu benutzen.
Dann verwensest du aber keinerlei Funktionen für die ScreenMaus, sonden Fragst die Events vom Window ab:

Code: Alles auswählen

;[...]
Event = WaitWindowEvent(1)

x1 = 90
x2 = 90
y1 = 215
y2 = 215

If Event = #WM_LBUTTONDOWN
cnt = cnt + 1
x1 = x1+cnt
x2 = x2-cnt
EndIf
;[...]
Wenn du das eigentlcihe Zeichnen aber nicht richtig machst, siehst du weiterhin nichts !
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
PB42
Beiträge: 243
Registriert: 13.10.2005 03:21

Re: Mousebutton() funktioniert nicht

Beitrag von PB42 »

If Event = #WM_LBUTTONDOWN war mir klar. Das funktioniert. Mir war es nur darum gegangen, mal abzuklären, warum alternativ dazu das ganze mit Mousebutton() nicht funktioniert. Danke nochmals.
Benutzeravatar
HeX0R
Beiträge: 3042
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Re: Mousebutton() funktioniert nicht

Beitrag von HeX0R »

PB42 hat geschrieben: Stichwort "ostfriesische Flagge": Ich weiß zwar nicht, wieso mein Name PB42 hier scheinbar als Symbol für den puren Idioten steht, obwohl ich genauso selten hier poste wie ich PureBasic benutze, aber ich werde es wohl nicht ändern können.
Naja, das war mehr als humoristischer Einwurf gedacht, ich sehe keinen Grund dich als Idioten abzustempeln.
(Aber o.k., ich bin nun mal auch Smiliefaul, vielleicht hätte so einer ;) geholfen ;) )
PB42
Beiträge: 243
Registriert: 13.10.2005 03:21

Re: Mousebutton() funktioniert nicht

Beitrag von PB42 »

Danke. Ich war vorhin einfach mal kurz sauer und hatte leider etwas überreagiert. Budweiser überzeugt mich aber auch :wink:
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Re: Mousebutton() funktioniert nicht

Beitrag von Fluid Byte »

War das nicht weißer Adler auf weißem Grund (Otto Walkes)?
Windows 10 Pro, 64-Bit / Outtakes | Derek
Benutzeravatar
HeX0R
Beiträge: 3042
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Re: Mousebutton() funktioniert nicht

Beitrag von HeX0R »

Fluid Byte hat geschrieben:War das nicht weißer Adler auf weißem Grund (Otto Walkes)?
Genau!
Aber da hier alles schwarz war (und ich nicht dachte, irgendeiner kennt den alten Blödsinn von Otto noch),
hatte ich das kurzerhand umgeändert.
Antworten