[fpc-devel] Important: Call for testing.

Michael Van Canneyt michael at freepascal.org
Mon Mar 31 15:00:02 CEST 2008



On Mon, 31 Mar 2008, Martin Schreiber wrote:

> On Sunday 30 March 2008 20.48:23 Michael Van Canneyt wrote:
> > On Sun, 30 Mar 2008, Martin Schreiber wrote:
> > > Inline is used for subforms, components in a form which inherit from
> > > another form (TFrame in Delphi), in MSEgui every form can be used as
> > > inline component. The ffInline filer flag must be written and the
> > > ancestor must be looked up on writing and reading like inherited
> > > components.
> >
> > OK, So:
> >
> >  Form1 = TForm1
> >   Frame1 = TMyFrame [inline comes here somewhere]
> >   end
> >  end
> >
> > When Frame1 is streamed, where do I find TMyFrame ? It's Ancestor is not
> > being streamed ?
> >
> It is like streaming of an inherited form. Lookup the ancestor and write the 
> property differences. 

Nono, when streaming an inherited form, the IDE provides the ancestor
instance when the streaming starts, because it calls writedescendent.

When you have a frame inside a form IDE, the IDE cannot provide the 
ancestor of the frame: the streaming code must look for the original 
instance of the frame by itself. My guess is that this is done by 
setting the OnFindAncestor callback ?

Michael.



More information about the fpc-devel mailing list