Seite 1 von 2
Wie macht man Menüs mit "ComboBoxGadget" ?
Verfasst: 14.08.2007 17:53
von Coder Pinhead
Beispiel Skript von mir:
Code: Alles auswählen
If OpenWindow(0, 0, 0, 100, 40, "Auswahl Menü Test", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) And CreateGadgetList(WindowID(0))
ComboBoxGadget(1, 7, 10, 100, 100)
For a = 1 To 5 : AddGadgetItem(1, -1,"Frage nummer " + Str(a) + " !!!") : Next a
SetGadgetState(1, 0)
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
End
Case #PB_Event_Gadget
Select EventGadget()
Case 1
MessageRequester("Test","Nur ein Test mehr nicht!",0)
EndSelect
EndSelect
ForEver
EndIf
Also wie baue ich da jetzt für jedes Menü einen anderen MessageRequester ein?
Verfasst: 14.08.2007 18:27
von Coder Pinhead
Habe es jetzt selber Herausgefunden
Dafür habe ich jetzt ein anderes Problem
Mein Skript:
Code: Alles auswählen
If OpenWindow(0, 0, 0, 100, 40, "Auswahl Menü Test", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) And CreateGadgetList(WindowID(0))
CreateGadgetList(WindowID(0))
ComboBoxGadget(1, 7, 10, 100, 100)
For a = 0 To 2 : AddGadgetItem(1, -1,"Frage nummer " + Str(a) + " !!!") : Next a
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
End
Case #PB_Event_Gadget
Select EventGadget() = 1
Case 1
a=GetGadgetState(1)
If a = 0
MessageRequester("0","0",0)
ElseIf a = 1
MessageRequester("1","1",0)
ElseIf a = 2
MessageRequester("2","2",0)
EndIf
EndSelect
EndSelect
ForEver
EndIf
Wie kann man eine Box wieder abwählen falls man sich verklickt haben sollte?
Verfasst: 14.08.2007 18:35
von pede
Ich würd das Problem anders lösen...
Du fügst einfach einen Button hinzu, sobald dieser gedrückt wird, kommt die Messagebox...
und erst beim Gadget-Event des Buttons überprüfst du via GetGadgetState welcher Eintrag gerade aktiv ist, und dann kannst du die Nachricht ausgeben...

Verfasst: 14.08.2007 18:41
von Coder Pinhead
Das mit dem "MessageRequester" war ja auch nur als Beispiel gedacht bzw das ganze Sktipt
Ich möchte ein Fenster Proggen wo man verschiedene Sachen auswählt und die werden dan zum Schluß in eine Text Datei abgespeichert^^
Was das wird will ich noch nicht schreiben nacher klaut mir noch jemand meine Idee

Dan muss ich mir was neues zum PB lernen ausdenken

Verfasst: 14.08.2007 18:44
von pede
Dann nimm statt dem ComboboxGadget das ListViewGadget...
Dort funktioniert das so wie du dirs vorstellst
Viel Spaß!
Verfasst: 15.08.2007 12:31
von Coder Pinhead
Ich habe jetzt ein ganz anderes Problem
Also wie kann ich den Text der Ausgegeben wird Ändern?
Hier mal ein kleines Beispiel Skript:
Code: Alles auswählen
;{- Enumerations / DataSections
;{ Windows
Enumeration
#Window_0
EndEnumeration
;}
;{ Gadgets
Enumeration
#ComboBox_0
#Button_1
EndEnumeration
;}
Define.l Event, EventWindow, EventGadget, EventType, EventMenu
;}
Procedure OpenWindow_Window_0()
If OpenWindow(#Window_0, 404, 168, 191, 115, "Window_0", #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar)
If CreateGadgetList(WindowID(#Window_0))
ComboBoxGadget(#ComboBox_0, 20, 30, 155, 100)
AddGadgetItem(#ComboBox_0,-1,"-----")
AddGadgetItem(#ComboBox_0,-1,"Funktion 1")
AddGadgetItem(#ComboBox_0,-1,"Funktion 2")
SetGadgetState(#ComboBox_0,0)
ButtonGadget(#Button_1, 20, 57, 100, 30, "Knopf")
EndIf
EndIf
EndProcedure
OpenWindow_Window_0()
;{- Event loop
Repeat
Event = WaitWindowEvent()
Select Event
; ///////////////////
Case #PB_Event_Gadget
EventGadget = EventGadget()
EventType = EventType()
If EventGadget = #ComboBox_0
ElseIf EventGadget = #Button_1
Select EventGadget()
Case #Button_1
MessageRequester("Test Window","Ein anderer Text: "+GetGadgetText(#ComboBox_0),#PB_MessageRequester_Ok)
EndSelect
EndIf
; ////////////////////////
Case #PB_Event_CloseWindow
EventWindow = EventWindow()
If EventWindow = #Window_0
CloseWindow(#Window_0)
Break
EndIf
EndSelect
ForEver
;
;}
Also der soll nicht Funktion 1 oder 2 ausgeben sondern z.b Befehl-Alpha für Funktion 1 und für Funktion 2 Befehl-Delta. Und bei ----- soll er gar nichts ausgeben.
Wie mache ich das jetzt???
Please Help
Danke schon mal

Verfasst: 15.08.2007 12:36
von Kiffi
Code: Alles auswählen
[...]
Case #Button_1
Select GetGadgetText(#ComboBox_0)
Case "Funktion 1"
Ausgabe.s = "Alpha"
Case "Funktion 2"
Ausgabe.s = "Beta"
EndSelect
MessageRequester("Test Window","Ein anderer Text: " + Ausgabe, #PB_MessageRequester_Ok)
[...]
Grüße ... Kiffi
Verfasst: 15.08.2007 12:39
von Coder Pinhead
Du bist mein Retter Kiffi
Dankö
Verfasst: 15.08.2007 16:02
von Coder Pinhead
Kiffi ich habe ein neues Problem
Und zwar geht es diesmal um ein "CheckBoxGadget" und ein "StringGadget".
Also wen die CheckBox [X] Selektiert ist soll er ein Text im StringGadget ausgeben und wen die CheckBox [ ] nicht Selektiert ist soll er gar nichts ausgeben. Wie mach ich das jetzt?
Weil wen ich das damit mach was du mir für das "ComboBoxGadget" gepostet hat gibt der immer den Text aus :/ Und bei dem was ich mir so ausgedacht habe auch

Verfasst: 15.08.2007 16:18
von Kiffi
Coder Pinhead hat geschrieben:Also wen die CheckBox [X] Selektiert ist soll er ein Text im StringGadget ausgeben und wen die CheckBox [ ] nicht Selektiert ist soll er gar nichts ausgeben. Wie mach ich das jetzt?
Code: Alles auswählen
[...]
If GetGadgetState(DeinCheckBoxGadget) = 1
SetGadgetText(DeinStringGadget, "Kuckuck!")
Else
SetGadgetText(DeinStringGadget, "")
EndIf
[...]
Grüße ... Kiffi