[Lazarus] Problem using TAsyncProcess.OnReadData
shoKwave
shokwave at gmx.net
Wed Jul 28 19:30:31 CEST 2010
On 28/07/2010 14:59, Bernd Kreuss wrote:
> Bernd Kreuss wrote
>> The understanding of the codetools seems to be essential for doing any
>> non-trivial thing inside the IDE.
>>
Code-exploration maybe.... There is lot of other stuff in the IDE...
> This tool would help me build a tree starting with the current method,
> listing all calls to other methods inside the method body as subnodes of
> this node and when I click on one of the subnodes it will again list all
> method calls inside the called method as subnodes of *this* node,
> letting me grow this tree only into the branches that are of interest to
> me. Whenever I click a node the editor window will immediately
> open/scroll directly to the *implementation*
>
...
Nice Idea, certainly helpful.
It has limits too (that shouldn't mean not to do it...):
Simple concepts like a Visitor (or anything where the method is based on
inheritance) simply can not be resolved => codetools will always jump to
the base class.
procedure TOnlineState.SwitchStateToOffline( Connection: TBaseConnection);
begin
Connection.SayGoodBye;
Connection.GoOffline;
end;
The code can have many different Connection classes, each having it's
own SayGoodBye and GoOffline method.
Only at runtime, only if you know the real class, only then you can know
where the code will go...
On the other hand, you can pick simplier tasks => there is a window that
can show your jump history => so you don't need all windows open. That
List is very basic => it could get many improvements (for example
showing not only the line of a history point but also the procedure in
which the line is (ok that is codetools, but less of it)...
I guess you probably rather go for your solution, and yours is better =>
but I just wanted to make an example, that the amount of "learning
existing ide" and "which parts to learn" depends on the task you choose.
Martin
More information about the Lazarus
mailing list