Re: [lazarus] Overview of LCL architecture.
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.
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.
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