Re: [lazarus] Overview of LCL architecture.

2007-09-16 Thread Bruce Tulloch
Chris Kirkpatrick wrote:
> Bruce Tulloch wrote:
>> Is there any overview documentation about the architecture
>> of the LCL and what the normal sequence of events is for a
>> typical GUI application in general?
>>
>> I'm talking internally and down to the widget interface level.
>>   
> You might try looking at the on-line help for the LCL. The easiest way
> to get there is to put the cursor on a key-word in your editor, and
> press F1. Provided yu have an internet connection, you will be taken to
> a HTML document describing the item, and you should find plenty of links
> to help you, for example, to trace the ancestry of a particular
> component and the properties defined in the ancestors.
> 
> I don't know if this helps; please be aware that the LCL documentation
> for Lazarus is still in a pretty primitive state and needs a lot of work
> (do I hear offers of help?), but you can discern the underlying
> structure of any components you use.

Thanks for the feedback

Chris. We had discovered this route into the LCL documentation already. It's
convenient, if rather spartan at present :-)

We are investigating the use of Lazarus/LCL for some work here and if we do
plunge in and use it in a production environment we would certainly contribute
what information we can as we learn more about it.

However what I was looking for right now was more do to with internal the
design and structure of the LCL from an LCL developer's point of view rather
than just the API and class definitions from an LCL user's point of view.

For example, at present we're trying to learn what we need to know to be able
to fix some internal LCL/GTK bugs (fixes for which would of course be fed back
upstream). One of these:

  http://www.freepascal.org/mantis/view.php?id=9676

is a prime case in point. We have managed to refine our understanding of what
the problem is but fixing it is going to require quite a bit more knowledge of
GTK (which we're working on) and LCL's internal interfaces API that drives it.

Thanks again for your feedback.

Cheers, Bruce.

_
 To unsubscribe: mail [EMAIL PROTECTED] with
"unsubscribe" as the Subject
   archives at http://www.lazarus.freepascal.org/mailarchives


Re: [lazarus] Overview of LCL architecture.

2007-09-14 Thread Chris Kirkpatrick
Bruce Tulloch wrote:
> I thought I'd have a go at finding a bug I reported today:
>
>   http://www.freepascal.org/mantis/view.php?id=9676
>
> and I think I might get to the bottom of it eventually.
>
> My question here is a tangential to this...
>
> Is there any overview documentation about the architecture
> of the LCL and what the normal sequence of events is for a
> typical GUI application in general?
>
> I'm talking internally and down to the widget interface level.
>
> How closely to Delphi's VCL does the LCL correspond and how
> useful (or misleading) is Borland's documentation when trying
> to understanding LCL's internal design at these levels below
> the VCL API layer.
>
> For example, in this specific case I think the problem is
> that the TComboBox name is being rendered (by GTK) before
> the component streaming of the TComboBox has even started
> (in TWinControl.InitializeWnd).
>
> The TPanel works because its Caption is not rendered at
> this point in the LCL bootstrap sequence.
>
> However I'm not confident of this diagnosis yet because
> I don't know the normal "sequence of events" and what is
> supposed to happen.
>
> I will soldier on with the debugger to learn by example
> but if there is a source of information that might speed
> up the process and help avoid any blind alleys it would
> be most welcome :-)
>
> Many thanks, Bruce.
>
> _
>  To unsubscribe: mail [EMAIL PROTECTED] with
> "unsubscribe" as the Subject
>archives at http://www.lazarus.freepascal.org/mailarchives
>
>
>  
>
>   
You might try looking at the on-line help for the LCL. The easiest way
to get there is to put the cursor on a key-word in your editor, and
press F1. Provided yu have an internet connection, you will be taken to
a HTML document describing the item, and you should find plenty of links
to help you, for example, to trace the ancestry of a particular
component and the properties defined in the ancestors.

I don't know if this helps; please be aware that the LCL documentation
for Lazarus is still in a pretty primitive state and needs a lot of work
(do I hear offers of help?), but you can discern the underlying
structure of any components you use.

Regards - Chris

_
 To unsubscribe: mail [EMAIL PROTECTED] with
"unsubscribe" as the Subject
   archives at http://www.lazarus.freepascal.org/mailarchives


[lazarus] Overview of LCL architecture.

2007-09-14 Thread Bruce Tulloch
I thought I'd have a go at finding a bug I reported today:

  http://www.freepascal.org/mantis/view.php?id=9676

and I think I might get to the bottom of it eventually.

My question here is a tangential to this...

Is there any overview documentation about the architecture
of the LCL and what the normal sequence of events is for a
typical GUI application in general?

I'm talking internally and down to the widget interface level.

How closely to Delphi's VCL does the LCL correspond and how
useful (or misleading) is Borland's documentation when trying
to understanding LCL's internal design at these levels below
the VCL API layer.

For example, in this specific case I think the problem is
that the TComboBox name is being rendered (by GTK) before
the component streaming of the TComboBox has even started
(in TWinControl.InitializeWnd).

The TPanel works because its Caption is not rendered at
this point in the LCL bootstrap sequence.

However I'm not confident of this diagnosis yet because
I don't know the normal "sequence of events" and what is
supposed to happen.

I will soldier on with the debugger to learn by example
but if there is a source of information that might speed
up the process and help avoid any blind alleys it would
be most welcome :-)

Many thanks, Bruce.

_
 To unsubscribe: mail [EMAIL PROTECTED] with
"unsubscribe" as the Subject
   archives at http://www.lazarus.freepascal.org/mailarchives