CatchSound() vor MessageRequester?
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
Das Beispiel hilft mir nicht wirklich weiter. Die Hilfe auch nicht. Und einige Tutorials, die ich bei Google gefunden habe auch nicht. Ich bräuchte ein simples Beispiel, welches den Umgang mit EventID erkärt. Wichtig ist auch wie ich es konkret einsetze. Sprich an welcher Stelle im Code.
Ich hoffe, du weißt was gemeint ist
Ich hoffe, du weißt was gemeint ist

PureBasic v4.00 (Windows - x86)
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
wie du richtig gemerkt hast, ist EventID eine variable.
du könntest sie also auch irgendwie anders nennen.
in variablen kann man rückgabewerte von funktionen speichern.
so auch den Rückgabewert von WaitWindowEvent().
das wartet auf irgendein event und gibt dessen nummer zurück.
darauf reagierst du dann.
z.b. wenn das event das schließen des fensters ist (#PB_Event_CloseWindow),
verläßt du deine hauptschleife und dein program.
wenn das event aussagt, dass ein Gadget betätigt wurde,
musst du die funktion EventGadget() aufrufen,
die liefert dir die nummer zurück, welches Gadget betätigt wurde.
du könntest sie also auch irgendwie anders nennen.
in variablen kann man rückgabewerte von funktionen speichern.
so auch den Rückgabewert von WaitWindowEvent().
das wartet auf irgendein event und gibt dessen nummer zurück.
darauf reagierst du dann.
z.b. wenn das event das schließen des fensters ist (#PB_Event_CloseWindow),
verläßt du deine hauptschleife und dein program.
wenn das event aussagt, dass ein Gadget betätigt wurde,
musst du die funktion EventGadget() aufrufen,
die liefert dir die nummer zurück, welches Gadget betätigt wurde.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
Habs soweit geschafft. Doch nachdem er den MessageRequester öffnet, lässt er sich nicht wieder schließen. Wie bekomm ich das hin?
Code: Alles auswählen
MessageRequester("Obacht!", "Dieses Programm wird Ihnen dabei helfen, herauszufinden, ob Tobias oder Adrian cooler ist!")
If OpenWindow(0, 400, 400, 200, 200, "Wer ist cooler?")
If CreateGadgetList(WindowID(0))
ButtonGadget(1, 10, 100, 180, 60, "Tobias")
ButtonGadget(2, 10, 15, 180, 60, "Adrian")
EndIf
Repeat
EventID=WaitWindowEvent()
If EventID=#PB_Event_CloseWindow
Quit=1
EndIf
If EventGadget()=1
MessageRequester("Falsch!", "Die Antwort ist leider falsch!" + Chr(10) + "Tobias ist ein Lowbird!")
EndIf
If EventGadget()=2
MessageRequester("Richtig!", "Wunderbar, Sie haben gewonnen!")
EndIf
Until quit=1
EndIf
End
PureBasic v4.00 (Windows - x86)
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Code: Alles auswählen
MessageRequester("Obacht!", "Dieses Programm wird Ihnen dabei helfen, herauszufinden, ob Tobias oder Adrian cooler ist!")
If OpenWindow(0, 400, 400, 200, 200, "Wer ist cooler?")
If CreateGadgetList(WindowID(0))
ButtonGadget(1, 10, 100, 180, 60, "Tobias")
ButtonGadget(2, 10, 15, 180, 60, "Adrian")
EndIf
Repeat
EventID=WaitWindowEvent()
If EventID=#PB_Event_CloseWindow
Quit=1
EndIf
If EventID = #PB_Event_Gadget ; <---------- wichtig, erst abfragen ob Gadget Event, danach erst welches!
If EventGadget()=1
MessageRequester("Falsch!", "Die Antwort ist leider falsch!" + Chr(10) + "Tobias ist ein Lowbird!")
EndIf
If EventGadget()=2
MessageRequester("Richtig!", "Wunderbar, Sie haben gewonnen!")
EndIf
EndIf
Until quit=1
EndIf
End
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Code: Alles auswählen
MessageRequester("Obacht!", "Dieses Programm wird Sie Stimmen hören lassen!")
InitSound()
CatchSound(1, ?Music)
CatchSound(2, ?Dings)
If OpenWindow(0, 400, 400, 200, 200, "Wer ist cooler?")
If CreateGadgetList(WindowID(0))
ButtonGadget(1, 10, 100, 180, 60, "Sebastian")
ButtonGadget(2, 10, 15, 180, 60, "Adrian")
EndIf
Repeat
EventID=WaitWindowEvent()
If EventID=#PB_Event_CloseWindow
Quit=1
EndIf
If EventID = #PB_Event_Gadget
If EventGadget()=1
PlaySound(1, 0)
EndIf
If EventGadget()=2
PlaySound(2, 0)
EndIf
EndIf
Until quit=1
EndIf
End
DataSection
Music: IncludeBinary "c:\sebastian.wav"
Dings: IncludeBinary "c:\adrian.wav"
EndDataSection
PureBasic v4.00 (Windows - x86)
- Fluid Byte
- Beiträge: 3110
- Registriert: 27.09.2006 22:06
- Wohnort: Berlin, Mitte