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

Danke