Event-driven GUI - experienced programmers opinion needed!

Hi.

I am currently writing a replacement of Borland Turbo Vision - an entirely
new application
framework. The new framework is written in 100% object oriented Borland
Pascal. I have run into some problems when I started to implement an
event-driven GUI.

This is what I have come up with so far:

tMessage
 procedure Reject; virtual;
 function Sender : pComponent; virtual;
 function Receiver : pComponent; virtual;
 function IsBroadcast : boolean; virtual;

tComponent
  procedure Handle (Message : pMessage);
  procedure Send (...);
  procedure Post (...);
  fManager : pManager; { field }

tManager : tComponent
  procedure Handle (Message : pMessage); override;
  procedure Kill (Component : pComponent);
  procedure Register (Component : pComponent);

tCommunicator
  procedure Post (...); override;
  fQueue : pADT; { message queue }

I think you get the picture although this is very sketchy. I have some
problems. I must decide what properties I shall put into the tComponent
class. I will give it the flag "fLocked : boolean" that is set to TRUE if
it cannot receive messages.

The Post method calls the fManagers Post method, and so on until the
manager is a communicator that put the posted message in a queue.

My tComponent class is inherited into a tView and tGroup class just like
Turbo Vision. These classes will handle the graphical interactions.

Here are the problematic issues:

(i) I don't know how to make use of a message queue -  is it really
required?
(ii) Would it be wise to enable a program to have more than one message
queue?
(iii) How are keypresses etc put into the message queue? I have designed a
class extension of tComponent ===> tDevice that will post messages. Must I
implement more methods than just Handle - ie. Execute; virtual; that is
called systematically by the manager???

Your view on this would be very helpful. Also you may know some good books
or places on Internet where one can gain further information about
event-driven programming and its basics.

I am in desperate need of advice since the product is already very
delayed..

Best Regards,
Johan Larsson
j...@ts.umu.se <=== reply here!

PS.  If you are qurious ... check this out:
       http://www.ts.umu.se/~jola/EFLIB/Manual/Advanced/Analysis.html