Seite 1 von 1

Button drücken

Verfasst: 06.04.2011 14:51
von TheNewOne
Hallo Leute,
ich habe kürzlich begonnen mit PureBasic zu programmieren.
Ich habe eine graphische oberfläche erstellt (mit dem desinger(ich weis dass
viele sagen dass man vllt zuerst ohne graph. oberfläche arbeiten sollte, aber
ich hatte in der schule 1 jahr java, dort haben wir auch mit graph. ober-
flächen gearbeitet und es hat super funktioniert)).
Bei Java gab es sobald man einen Button erstellte einen Code in java zwischen
dessen klammer man schreiben konnte was passieren sollte, wenn man den button drückt.
Frage: wie macht man das in pb?

Re: Button drücken

Verfasst: 06.04.2011 14:53
von RSBasic
Meinst du sowas?

Code: Alles auswählen

EnableExplicit

Define EventID

If OpenWindow(0,0,0,500,400,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
  ButtonGadget(1,10,10,100,20,"Dein Button",0)
  
  Repeat
    EventID=WaitWindowEvent()
    If EventID=#PB_Event_Gadget
      Select EventGadget()
        Case 1
          MessageRequester("","Dein Button wurde gedrückt.",0)
      EndSelect
    EndIf
    If EventID = #PB_Event_CloseWindow
      End
    EndIf
  ForEver
EndIf

Re: Button drücken

Verfasst: 06.04.2011 14:57
von TheNewOne
Danke !!!

Re: Button drücken

Verfasst: 06.04.2011 16:07
von TheNewOne
Hallo,
ich habe den code jezt übernommen.
allerdings wenn ich eine if funktion einbaue, wo geprüft wird ob der string < 2 ist,
wird immer nur die else anweisung ausgeführt auch wenn der string 1 ist.

Code: Alles auswählen

Repeat
    EventID=WaitWindowEvent()
        
    If EventID=#PB_Event_Gadget
      Select EventGadget()
        Case #Button_0
          ;-Button gedrückt, was passiert jetzt
          
          If  #String_0 < 2 
            
            MessageRequester("","Dein Buttone wurde gedrückt.",0) 
            
          Else 
            
            MessageRequester("","Dein Buttona wurd gedrückt2.",0) 
            
          EndIf

          
                  
      EndSelect
      EndIf
    If EventID = #PB_Event_CloseWindow
      End
    EndIf
  ForEver

Re: Button drücken

Verfasst: 06.04.2011 16:12
von RSBasic
Bist du dir sicher, dass die Konstante wirklich den Wert 1 hat?

Code: Alles auswählen

EnableExplicit

Define EventID

#String_0 = 1

If OpenWindow(0,0,0,500,400,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
  ButtonGadget(1,10,10,100,20,"Dein Button",0)
  
  Repeat
    EventID=WaitWindowEvent()
    If EventID=#PB_Event_Gadget
      Select EventGadget()
        Case 1
          If  #String_0 < 2
            MessageRequester("","Dein Buttone wurde gedrückt.",0)
          Else
            MessageRequester("","Dein Buttona wurd gedrückt2.",0)
          EndIf
          
      EndSelect
    EndIf
    If EventID = #PB_Event_CloseWindow
      End
    EndIf
  ForEver
EndIf

Re: Button drücken

Verfasst: 06.04.2011 16:15
von TheNewOne
Ich hab den String über einen numeric StringGadget eingelesen.
von daher ja ich bin mir ziemlich sicher, aber ich stell mal den ganzen code rein.

Code: Alles auswählen

EnableExplicit


Enumeration
   
  #Window_0
  #Button_0
  #String_0
  #String_1
  #Text_0
  #Text_1
EndEnumeration

Define EventID

If OpenWindow(0,0,0,500,400,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
  ButtonGadget(1,10,10,100,20,"Dein Button",0)
  If CreateGadgetList(WindowID(#Window_0))
      ButtonGadget(#Button_0, 160, 180, 260, 40, "...")
      StringGadget(#String_0, 160, 80, 250, 40, "", #PB_String_Numeric)
      StringGadget(#String_1, 160, 130, 250, 40, "", #PB_String_ReadOnly)
      TextGadget(#Text_0, 110, 90, 30, 20, "1")
      TextGadget(#Text_1, 100, 20, 360, 50, "2")
  EndIf
  
  Repeat
    EventID=WaitWindowEvent()
        
    If EventID=#PB_Event_Gadget
      Select EventGadget()
        Case #Button_0
          ;-Button gedrückt, was passiert jetzt
          
          If  #String_0 < 2 
            
            MessageRequester("","Dein Button wurde gedrückt.",0) 
            
          Else 
            
            MessageRequester("","Dein Button wurde gedrückt2.",0) 
            
          EndIf

          
                  
      EndSelect
      EndIf
    If EventID = #PB_Event_CloseWindow
      End
    EndIf
  ForEver
EndIf

Re: Button drücken

Verfasst: 06.04.2011 16:19
von RSBasic
Wenn du den Wert aus deinem StringGadget auslesen möchtest, musst du auch GetGadgetText() benutzen.

Code: Alles auswählen

EnableExplicit

Define EventID

If OpenWindow(0,0,0,500,400,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
  StringGadget(1,10,10,130,20,"1",#PB_String_Numeric)
  ButtonGadget(2,150,10,100,20,"Dein Button",0)
  
  Repeat
    EventID=WaitWindowEvent()
    If EventID=#PB_Event_Gadget
      Select EventGadget()
        Case 2
          If Val(GetGadgetText(1)) < 2
            MessageRequester("","Dein Buttone wurde gedrückt.",0)
          Else
            MessageRequester("","Dein Buttona wurd gedrückt2.",0)
          EndIf
          
      EndSelect
    EndIf
    If EventID = #PB_Event_CloseWindow
      End
    EndIf
  ForEver
EndIf

Re: Button drücken

Verfasst: 06.04.2011 16:28
von TheNewOne
Jetzt meckert er dass er Strings nicht mit numerischen werten vergleichen kann. :(

Re: Button drücken

Verfasst: 06.04.2011 16:31
von RSBasic
Wenn du meinen Code ausführst, dann meckert er nicht.

Benutze entweder Val() oder Str(), um deinen String oder deinen Wert zu konvertieren.

Re: Button drücken

Verfasst: 06.04.2011 16:31
von TheNewOne
:praise: Danke