<div>I'm not sure I see the value behind these ideas.</div>
<div> </div>
<div>If you need an event-based loop and callbacks you can make TApplication. If you don't want LCL ok, then make your own, it's generaly needed to be very problem-specific anyhow, eg: the TLEventers I use are ment for handling events on handles (files and sockets atm, sockets only in windows).
</div>
<div> </div>
<div>If you want a "Timer" a "polling" mechanism has to take place which looks if something happened on some timer for example, OnTimer is "ready to be fired" (you can't call callbacks in threads, and if you go single-threaded you have to provide the main loop hooks).
</div>
<div> </div>
<div>So basicly, let's say TTimer is in RTL and there's some event mechanism already too, you'd have to do something like this:</div>
<div> </div>
<div>procedure init;</div>
<div>begin</div>
<div>  Timer.Timeout:=somenumber;</div>
<div>  Timer.OnTimer:=@somecallback;</div>
<div>  EventHandler.RegisterTimer(Timer); // could be the other way around</div>
<div>end;</div>
<div> </div>
<div>procedure MainLoop;</div>
<div>begin</div>
<div>  EventHandler.HandleEvents; // if eventhandler after polling all timers in it's watchlist find out some has it's interval done, it fires it's callback</div>
<div>end;</div>
<div> </div>
<div>begin</div>
<div>  Init;</div>
<div>  MainLoop;</div>
<div>end.</div>
<div> </div>
<div> </div>
<div>Apart from asynchronous stuff like watching handles etc. I don't see much use for this relativly complicated program model. Remember you need to call the "HandleEvents" as fast as possible to stay effective (otherwise you lose precision)
</div>