[MaxGUI] Button Handle eines gedrückten Buttons abfragen?

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

Knyk

Betreff: [MaxGUI] Button Handle eines gedrückten Buttons abfragen?

BeitragDi, Okt 18, 2011 2:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
Mal eine Frage:
Kann hier bitte jemand nochmal etwas ausführlich darüber sagen / einen Link posten wie das mit den Events bei der Maxgui funktioniert?

Eigentlich müsste das doch so sein wie in B+, oder? In b+ hab ich auch keine Probleme damit aber bei bmax ist folgendes mein Problem:

Ich hab ein Fenster mit button1 und button2.
Ich krieg nur "GadgetAction" als event. Wie Frag ich denn nun damit ab, welcher button betätigt wurde und ob es überhaupt ein Button war?

Scheint ja in bmax ein bisschen anders zu sein.
Danke

Midimaster

BeitragDi, Okt 18, 2011 2:39
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzMax: [AUSKLAPPEN]
SuperStrict
Import MaxGUI.Drivers
Global Window:TGadget , Button:TGadget
Local flags%=WINDOW_TITLEBAR | WINDOW_CLIENTCOORDS|WINDOW_CENTER
Window= CreateWindow("Leeres Test Window" , 0 , 0 , 600 , 400 , Null , Flags%)
Button=CreateButton("Press mich", 10,10,100,40,Window,BUTTON_PUSH)


While WaitEvent()
Local tmpGadget:TGadget
Select EventID()
Case EVENT_TIMERTICK

Case EVENT_GADGETACTION
Local tmpGadget:TGadget = TGadget(EventSource())
If tmpGadget
Select tmpGadget
Case Button
Print "button"
End Select
EndIf
Case EVENT_WINDOWCLOSE
End
End Select
Wend
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe

Knyk

BeitragDi, Okt 18, 2011 2:50
Antworten mit Zitat
Benutzer-Profile anzeigen
oookay
das versteh ich nicht ganz. sorry^^
Wieso denn Code: [AUSKLAPPEN]
Local tmpGadget:TGadget = TGadget(EventSource())

?

und wieso ist es button = Createbutton ....
und nicht button:Tgadget= Createbutton....
?

und was genau tut dann TGadget(EventSource())?

ich bin im Moment leicht verwirrt^^

Xeres

Moderator

BeitragDi, Okt 18, 2011 3:29
Antworten mit Zitat
Benutzer-Profile anzeigen
EventSource() gibt dir das Quell-Objekt, das kannst du - auch ohne Temporäres Objekt - vergleichen:
BlitzMax: [AUSKLAPPEN]
Case EVENT_GADGETACTION
Select EventSource()
Case Button
Print "button"
End Select

TGadget(EventSource()) Castet das allgemeine Object zu einem TGadget.
Und weiter oben steht
BlitzMax: [AUSKLAPPEN]
Global Window:TGadget , Button:TGadget
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)
 

jsp

BeitragDi, Okt 18, 2011 8:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Hier nochmal ein anderes Beispiel mit "button:Tgadget= Createbutton.... " :

Code: [AUSKLAPPEN]

SuperStrict

Import MaxGui.Drivers

Local Window1:TGadget = CreateWindow("Window1",262,230,243,245,Null,WINDOW_TITLEBAR|WINDOW_RESIZABLE |WINDOW_STATUS |WINDOW_CLIENTCOORDS |WINDOW_CENTER)
   Local Button1:TGadget = CreateButton("Button1",25,23,75,23,Window1,BUTTON_PUSH)
   Local Button2:TGadget = CreateButton("Button2",25,86,75,23,Window1,BUTTON_PUSH)
   Local Radio3:TGadget = CreateButton("Radio3",140,23,75,23,Window1,BUTTON_RADIO)
      SetButtonState( Radio3,0 )
   Local Radio4:TGadget = CreateButton("Radio4",140,86,75,23,Window1,BUTTON_RADIO)
      SetButtonState( Radio4,0 )
   Local Radio5:TGadget = CreateButton("Radio5",140,149,75,23,Window1,BUTTON_RADIO)
      SetButtonState( Radio5,0 )
   Local Checkbox6:TGadget = CreateButton("Checkbox6",25,149,75,23,Window1,BUTTON_CHECKBOX)
      SetButtonState( Checkbox6,0 )
   Local TextField1:TGadget = CreateTextField(25,212,190,18,Window1,Null)
      SetGadgetText( TextField1,"TextField1")

Repeat
   WaitEvent()
   Select EventID()
      Case EVENT_WINDOWCLOSE
         Select EventSource()
            Case Window1   Window1_WC( Window1 )
         End Select

      Case EVENT_GADGETACTION
         Select EventSource()
            Case Button1   Button1_GA( Button1 )
            Case Button2   Button2_GA( Button2 )
            Case Radio3   Radio3_GA( Radio3 )
            Case Radio4   Radio4_GA( Radio4 )
            Case Radio5   Radio5_GA( Radio5 )
            Case Checkbox6   Checkbox6_GA( Checkbox6, EventData() )
            Case TextField1   TextField1_GA( TextField1 )
         End Select

   End Select
Forever

Function Window1_WC( Window:TGadget )
   DebugLog "Window Window1 wants to be closed"
   END
End Function

Function Button1_GA( Button:TGadget )
   DebugLog "Button Button1 was pressed"
   
End Function

Function Button2_GA( Button:TGadget )
   DebugLog "Button Button2 was pressed"
   
End Function

Function Radio3_GA( Button:TGadget )
   DebugLog "Button Radio3 was pressed"
   
End Function

Function Radio4_GA( Button:TGadget )
   DebugLog "Button Radio4 was pressed"
   
End Function

Function Radio5_GA( Button:TGadget )
   DebugLog "Button Radio5 was pressed"
   
End Function

Function Checkbox6_GA( Button:TGadget, State:Int )
   DebugLog "Checkbox Button Checkbox6 changed to "+ State
   
End Function

Function TextField1_GA( TextField:TGadget )
   DebugLog "TextField TextField1 was modified"
   DebugLog "Text = "+ TextFieldText$( TextField )
   
End Function

Logic Gui Professional a Gui Designer for MaxGui

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group