Programmieren - alles kontrollieren 4.936 Themen, 20.625 Beiträge

Wie wird ein Event ausgelöst?

d-oli / 4 Antworten / Flachansicht Nickles

Hallo Leute


 


Wie wird eigentlich ein Event ausgelöst?


 


Beispiel:


 


Ich habe ein Fenster mit einen Push-Button und einem Textfeld. Klicke ich den Push-Button (z.B. OnClick-Event) erscheint im Textfeld „Hallo Welt“.


 


Wie wird dieser Event erkannt? Ist das ein Loop der abläuft und wartet bis etwas passiert um dann zu schauen was es war? Oder wird der Klick der Maus abgefangen und dann geschaut wo im Bild man ist um dann dem Objekt zu sagen „du bist dran, tue jetzt was“? Hmmm… ziemlich verwirrend …


 


Gruss, d-oli


 

Konstruktive Kritik zeichnet sich dadurch aus, dass sie höflich, nützlich und sachlich ist.
bei Antwort benachrichtigen
Andreas42 d-oli „Wie wird ein Event ausgelöst?“
Optionen

Hi!

Es ist eiegntlich nicht wirklich wichtig zu wissen, wie der Event ausgelöst wird, mann muss nur eien Vortsellung haben, wann er kaommt. ;-)

Events sind letztendlich Systemnachrichten, die von Windows per Callback-Funktion an die angebundenen Anwendungen weitergeleitet werden.

Also wird im Hintergrund irgendein Teil des Betriebssystems tätig sein und bei Auslösen diverser Ereignisse eine solche Nachricht erzeugen und versenden.

Um das ganze jetzt noch komplizierter zu machen, kommt nun noch die Kapselung der ganzen internen Windows-API-Abläufe durch die Objekte der verscheidenen Compiler-Bibliotheken ins Spiel. Hier übernimmt dann irgeneine Steuerungsinstanz das Verarbeiten und Weiterleiten der Nachrichten-Events an die instanzierten Objekte (um dann z.B. irgendwelche Hock-Funktionen aufzurufen).
-> IMHO kein Loop, sondern eine Interruptsache.

Die unterste Ebene der Event-Verarbeitung dürfte warscheinlich auf Interups basieren, die z.B. ausgelöst werden, wenn man eine Taste drückt oder losläst, entsprechende Basisereignisse wird es mit Sicherheit auch für die Maus geben. (Jedenfalls war das zu DOS-Zeiten so und ich denke mir, dass das zu Windows-Zeiten immer noch so ist.)

Ich bin mir allerdings nicht sicher, wo ind wie festgestellt wird, welches Fenster gerade den Fokus hat (für Tastaturevents) oder wo genau geklickt wird. Ich denke, die Aufteilung liegt da recht frei irgendwo in den Tiefen der GUI und der verwendeten Klassenbibliothek vergraben.

Bis dann
Andreas

Hier steht was ueber mein altes Hard- und Softwaregedoens.
bei Antwort benachrichtigen