Kann ich nicht genau sagen. Ich denke es hängt damit zusammen, dass einige Libraries von anderen abhängig sind und auf diese zugreifen müssen, dass der Compiler beim Auswerten der Linker-Optionen aber wohl nur in eine Richtung arbeitet. Genauso kann man ja in C oder Pascal in einer Funktion nur andere Funktionen verwenden, die weiter oben deklariert wurden (sofern kein Prototyp vorhanden ist). Funktionen, die UNTEN deklariert wurden, werden nicht erkannt.
Ist im Prinzip recht simple. 1: Event Queue erstellen. 2: Eine oder mehrere Event Sources bei der Event Queue registrieren (in diesem Fall zum Beispiel die Event Source vom Display). 3: Event Queue nach neuen Events abfragen und entsprechend darauf reagieren.
Hatte ich in Amazing Tetris (mit Word Wrap, langsamen Buchstaben etc.). Es stellte sich im Laufe des Projekts allerdings heraus, dass der Aufbau eher suboptimal war.