Eventhandling sauber?

Anfängerfragen zum Programmieren mit PureBasic.
losgehts
Beiträge: 16
Registriert: 21.06.2020 12:31

Eventhandling sauber?

Beitrag von losgehts »

Ich möchte ein eigenes Steuerelement (im Beispiel unten "ProtBox") als Modul implementieren.
Es enthält ein Canvas und eine vertikale Scrollbar.

Die ID der Scrollbar ist global im Declare des Moduls, ist also von außen erreichbar.
Die Events kommen auch in der Eventschleife an, kein Problem.

Frage:
Ist es sauber, innerhalb des Moduls eine (z.B.) "HandleEvents"-Procedure zu erstellen und per Declare zu veröffentlichen, die dann aus der Hauptprogramm-Eventschleife aufgerufen wird?

Zur Veranschaulichung :

Code: Alles auswählen

     Repeat
        Event=WaitWindowEvent()
        Select Event
          Case #PB_Event_CloseWindow
            Break
          Case #PB_Event_Gadget
            Select EventGadget()
              Case #MyButton
                ProtBox::Add(#MyProtBox,Str(zaehler)+" : "+"1234567890 ABCabcWQq")
                zaehler+1
              Case ProtBox::gadScrollV
                ProtBox::HandleEvents(Event)  ; <---- ist das sauber?
            EndSelect
         EndSelect
      ForEver
      
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7028
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Eventhandling sauber?

Beitrag von STARGÅTE »

Eigentlich brauchst du diesen Umweg über die Haupt.Event-Schleife nicht gehen.
Du kannst deinem Gadget ProtBox::gadScrollV einfach ein Event im Modul binden und auf die entsprechende Procedure verweisen, ohne das der nutzer was davon sieht:

Code: Alles auswählen

BindGadgetEvent(ProtBox::gadScrollV, @ProtBox::HandleEvents())
An dieser stelle erwartet HandleEvents() aber kein argument, da Event ja eh immer #PB_Event_Gadget sein wird.

Es gibt auch BindEvent() um verschiedene Events zu verwarbeiten. Aber auch da bindest du immer genau ein Event.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
losgehts
Beiträge: 16
Registriert: 21.06.2020 12:31

Re: Eventhandling sauber?

Beitrag von losgehts »

Danke, funktioniert sehr gut!
Antworten