Seite 2 von 2

Re: Repeat : Until WaitWindowEvent()

Verfasst: 06.06.2012 11:42
von Kiffi
Pr0fessor hat geschrieben:noch eine frage zum verständnis:

würde die zeile

Code: Alles auswählen

repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
folgendes bedeuten?

Code: Alles auswählen

      Repeat
        WaitWindowEvent()
      Until WaitWindowEvent() = #PB_Event_CloseWindow
nein. Denn damit rufst Du 2mal WaitWindowEvent()
auf, was zur Folge hat, dass Ereignisse 'verschluckt'
werden.

Grüße ... Kiffi

Re: Repeat : Until WaitWindowEvent()

Verfasst: 06.06.2012 12:32
von RSBasic
Wenn du innerhalb der Schleife einen "WaitWindowEvent" haben möchtest, dann mach es doch so:

Code: Alles auswählen

Repeat
  Event = WaitWindowEvent()
  ;Weitere Auswertungen...
Until Event = #PB_Event_CloseWindow

Re: Repeat : Until WaitWindowEvent()

Verfasst: 06.06.2012 14:03
von Nino
Pr0fessor hat geschrieben:noch eine frage zum verständnis:

würde die zeile

Code: Alles auswählen

repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
folgendes bedeuten?

Code: Alles auswählen

      Repeat
        WaitWindowEvent()
      Until WaitWindowEvent() = #PB_Event_CloseWindow
Nein, der Doppelpunkt kann lediglich durch einen Zeilenumbruch ersetzt werden.
Siehe Allgemeine Syntax-Regeln.

Re: Repeat : Until WaitWindowEvent()

Verfasst: 06.06.2012 15:03
von STARGÅTE

Code: Alles auswählen

Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
Dieser Code wird eigentlich nur in sehr kurzen Beispielcode für Windows und Gadgets genutzt, weil er sicherstellt, dass Events verarbeitet werden und das Programm beim [X] drücken beendet wird.

Wenn du ein richtiges Programm schreiben möchtest, solltest du die Events richtig auswerten, und die Schleife zB so aufbauen:

Code: Alles auswählen

Repeat
	
	Select WaitWindowEvent()
			
		Case #PB_Event_CloseWindow
			Break ; aus der Schleife springen, hier kann auch "End" verwendet werden.
			
		Case #PB_Event_Gadget
			Select EventGadget() ; In welchem Gadget gabs ein Event
				Case #GadgetNummer
					Select EventType() ; Welcher Eventtyp liegt vor?
						Case #PB_EventType_LeftClick
							;...
					EndSelect
							;...
			EndSelect
			
		Case #PB_Event_Menu
			Select EventMenu() ; Welcher Menüeintrag wurde angeklickt.
				Case #MenuItem
					;...
			EndSelect
			
	EndSelect
	
ForEver

Re: Repeat : Until WaitWindowEvent()

Verfasst: 06.06.2012 15:44
von Pr0fessor
Danke für die vielen aufschlussreichen antworten - jetzt weiß ich bescheid.

(auch super finde ich dass das Forum so eine gute community besitzt indem man schnell geholfen wird. :praise: )