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