I have a form with some threaded objects that notify another form of events
by calling one of that forms events.

I want to convert to a data module and any interested object to register for
those notifications.

My idea is for each thread to have some kind of list of procedure types and
each interested object registers its routine eg.

This is the data module. It is a rough sketch and may have some syntax
errors

Type TOneArg = Procedure (Var X : integer);
>
> type
>   TMonitorObject = class(TThread)
>   private
>     InterestedObjects: TList
>     procedure DispatchOutput;
>     procedure DisplayRawOutput;
>   protected
>     procedure Execute; override;
>   public
>     constructor Create(CreateSuspended: Boolean);
>     RegisterInterest(interestedProc:TOneArg);
>   end;
>
>
> TMonitorObject.RegisterInterest(TOneArg);
> begin
>    InterestedObjects.Add(interestedProc);
> end;
>
> procedure TMonitorObject.DispatchOutput;
> begin
>    foreach InterestedObject do
>     InterestedObject.Procedure.Execute;
> end;
>
> constructor TMonitorObject.Create(CreateSuspended: Boolean);
> begin
>   inherited Create(CreateSuspended);
>   InterestedObjects := TList.Create
>   FCycleComplete := True;
>
> end;
>


Do the procedures for the objects which require notification need to be
constructed in some way?

Am I on the right track here? I am particularly interested in what happens
when the objects passing the routines are destroyed without the data module
knowing about it.
-- 
Frank Church

=======================
http://devblog.brahmancreations.com
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to