Aktuelle Zeit: 23.03.2019 10:42

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Forumsregeln


Die Forumsregeln lesen



Ein neues Thema erstellen Auf das Thema antworten  [ 166 Beiträge ]  Gehe zu Seite Vorherige  1 ... 13, 14, 15, 16, 17
Autor Nachricht
 Betreff des Beitrags: Re: Hinweise + Vorschläge f. bessere Befehls-Beschreibungen
BeitragVerfasst: 16.12.2018 00:11 
Offline

Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge
:mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Hinweise + Vorschläge f. bessere Befehls-Beschreibungen
BeitragVerfasst: 17.03.2019 10:29 
Offline

Registriert: 13.05.2010 09:26
Wohnort: Berlin
BindEvent() etc.

Seit der Einführung von BindEvent(), BindGadGetEvent() und BindMenuEvent() hatte ich angenommen, dass ein Ereignis nach dem Binden an eine Prozedur nicht mehr in der Ereignisschleife "erscheint", also dort nicht mehr abgefragt werden kann. Das war offenbar ein Irrtum. Leider ist das Ganze in der Hilfe nur sehr rudimentär dokumentiert.

Wie der folgende Code zeigt (getestet mit PB 5.70 unter Windows), kann anscheinend
  • eine Prozedur mit mehreren Ereignissen verbunden sein,
  • ein Ereignis an mehrere Proceduren gebunden sein,
  • ein Ereignis, das an eine oder mehrere Prozeduren gebunden ist, außerdem auch in der Ereignisschleife abgefragt werden.

Die Verarbeitung von Ereignissen ist in modernen Programmiersprachen wie PureBasic keine Kleinigkeit am Rande, sondern eine zentrale Angelegenheit. Die Dokumentation dazu sollte eindeutig und ausführlich sein :!:

Code:
EnableExplicit

Procedure ButtonHandlerA()
   Debug "Click event on button #" + EventGadget()
   Debug "Handled by ButtonHandler A"
EndProcedure

Procedure ButtonHandlerB()
   Debug "Click event on button #" + EventGadget()
   Debug "Handled by ButtonHandler B"
EndProcedure


Define Event.i

OpenWindow(0, 100, 100, 200, 90, "Click test", #PB_Window_SystemMenu)
ButtonGadget(0, 10, 10, 180, 30, "Button #0")
ButtonGadget(1, 10, 50, 180, 30, "Button #1")

BindGadgetEvent(0, @ButtonHandlerA())
BindGadgetEvent(0, @ButtonHandlerB())

BindGadgetEvent(1, @ButtonHandlerA())
BindGadgetEvent(1, @ButtonHandlerB())

Repeat
   Event = WaitWindowEvent()
   Select Event
      Case #PB_Event_Gadget
         Debug "Click event on button #" + EventGadget()
         Debug "Handled by the event loop"
         Debug ""
   EndSelect     
Until Event = #PB_Event_CloseWindow

_________________
Dieser Satz ist falsch.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Hinweise + Vorschläge f. bessere Befehls-Beschreibungen
BeitragVerfasst: 17.03.2019 10:53 
Offline

Registriert: 15.10.2004 17:42
Naja, ist ja auch eine Universal-Funktion, wie so manch andere.
Mit zusätzlichem [EventTyp] und EventGadget() in der Procedure
ist es ja möglich, das entsprechende Gadget und dessen Eventtype
raus zu filtern. Eigentlich würde da eine einzige Procedure für alle
Gadgets reichen.

_________________
PB 5.60


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Hinweise + Vorschläge f. bessere Befehls-Beschreibungen
BeitragVerfasst: 17.03.2019 11:06 
Offline

Registriert: 13.05.2010 09:26
Wohnort: Berlin
H.Brill hat geschrieben:
Naja, ist ja auch eine Universal-Funktion, wie so manch andere.
Mit zusätzlichem [EventTyp] und EventGadget() in der Procedure
ist es ja möglich, das entsprechende Gadget und dessen Eventtype
raus zu filtern. Eigentlich würde da eine einzige Procedure für alle
Gadgets reichen.

Darum geht es an dieser Stelle nicht - sondern darum, dass in der Dokumentation die Möglichkeiten, die zur Verfügung stehen, eben auch dokumentiert sind.

_________________
Dieser Satz ist falsch.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Hinweise + Vorschläge f. bessere Befehls-Beschreibungen
BeitragVerfasst: 17.03.2019 11:48 
Offline

Registriert: 15.10.2004 17:42
Ach so, ich dachte, du beziehst dich auf diese Aussage hier :

Nino hat geschrieben:
BindEvent() etc.
Wie der folgende Code zeigt (getestet mit PB 5.70 unter Windows), kann anscheinend
  • eine Prozedur mit mehreren Ereignissen verbunden sein,
  • ein Ereignis an mehrere Proceduren gebunden sein,
  • ein Ereignis, das an eine oder mehrere Prozeduren gebunden ist, außerdem auch in der Ereignisschleife abgefragt werden.


Ich sehe es als zusätzliches Feature an, da man damit sich die ganze EventGadget - Geschichte
sparen kann und somit die Ereignisschleife sehr schlank halten kann.
Daß man das Ereignis auch zusätzlich in der Ereignisschleife abfragen kann, ist daran geschuldet,
daß man BindEvent ja nicht unbedingt benutzen muß. Sonst wäre das für Fred ein erheblicher
Aufwand, alles auseinander zu halten. So braucht er halt nur abzufragen, ob noch eine Procedure
angekoppelt ist, und führt diese noch zusätzlich aus.

PS: Daß nicht alles super kommentiert ist, sieht man ja auch an anderen Stellen. Da hatte ich anfangs
auch meine Mühe, bis ich das ganze System einigermaßen verstanden hatte.

_________________
PB 5.60


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Hinweise + Vorschläge f. bessere Befehls-Beschreibungen
BeitragVerfasst: 17.03.2019 11:54 
Offline

Registriert: 13.05.2010 09:26
Wohnort: Berlin
H.Brill hat geschrieben:
Ach so, ich dachte, du beziehst dich auf diese Aussage hier :

Ich beziehe mich vor allem auf den Zweck dieses Threads:
Zitat:
Hinweise + Vorschläge f. bessere Befehls-Beschreibungen etc.

_________________
Dieser Satz ist falsch.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 166 Beiträge ]  Gehe zu Seite Vorherige  1 ... 13, 14, 15, 16, 17

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye