Button drücken

Anfängerfragen zum Programmieren mit PureBasic.
TheNewOne
Beiträge: 60
Registriert: 06.04.2011 14:33

Button drücken

Beitrag 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?
Win7, 64bit, PB 4.60
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Button drücken

Beitrag 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
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
TheNewOne
Beiträge: 60
Registriert: 06.04.2011 14:33

Re: Button drücken

Beitrag von TheNewOne »

Danke !!!
Win7, 64bit, PB 4.60
TheNewOne
Beiträge: 60
Registriert: 06.04.2011 14:33

Re: Button drücken

Beitrag 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
Win7, 64bit, PB 4.60
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Button drücken

Beitrag 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
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
TheNewOne
Beiträge: 60
Registriert: 06.04.2011 14:33

Re: Button drücken

Beitrag 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
Win7, 64bit, PB 4.60
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Button drücken

Beitrag 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
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
TheNewOne
Beiträge: 60
Registriert: 06.04.2011 14:33

Re: Button drücken

Beitrag von TheNewOne »

Jetzt meckert er dass er Strings nicht mit numerischen werten vergleichen kann. :(
Win7, 64bit, PB 4.60
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Button drücken

Beitrag 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.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
TheNewOne
Beiträge: 60
Registriert: 06.04.2011 14:33

Re: Button drücken

Beitrag von TheNewOne »

:praise: Danke
Win7, 64bit, PB 4.60
Antworten