[Lazarus] how to trace back the origin of events in LCL

Bernd prof7bit at googlemail.com
Sun Dec 18 10:38:21 CET 2011


HI,

I am sitting in front of a lot of code that was written by someone
else and am trying to find out what is going on. Concrete example:

Lazarus:
trunk/debugger/registersdlg.pp

TRegistersDlg = class(TDebuggerDlg)
  ...
  procedure RegistersChanged(Sender: TObject);
  ...
end;

I want to know how this event is created, what is the best strategy to
find out from where it comes from? I assume looking at the callstack
won't help because I assume its somehow called asynchronously. How
does it work? I have never used this mechanism myself, I have always
used QueueAsyncCall() or SendMessage() for doing similar things but
this looks like it is using the same LCL mechanism that is also used
for other GUI events. How are they generated?

What strategy should I apply to find the origin of this message (or
event or however it is called), what should I grep for to find it?

Bernd




More information about the Lazarus mailing list