[Lazarus] VFI

Mattias Gaertner nc-gaertnma at netcologne.de
Tue Jan 18 12:59:49 CET 2011


On Tue, 18 Jan 2011 12:47:24 +0200
Juha Manninen <juha.manninen62 at gmail.com> wrote:

> Mattias Gaertner kirjoitti tiistai 18 tammikuu 2011 03:38:20:
> > > In:
> > >  File -> New... -> Inherited Item -> Inherited Component
> > > 
> > > there are the existing forms of the current project. A new inherited form
> > > can be made based on them.
> > > IMO the header "Inherited Component" is wrong. It should be "Inherited
> > > Form".
> > 
> > All designer base classes: forms, frames, datamodules and customs from
> > designer mediators.
> > 
> > > It is misleading because also components can be inherited but these are
> > > not components.
> > 
> > ?
> 
> Components are typically located in component palette. TEdit and TButton are 
> components. You can inherit your own component from them, like:
>  type TMyEdit = class(TEdit)
> and you register that new component to the palette, too.
> 
> Visual Form Inheritance is different. It deals with form designer and .lfm form 
> files. Now, Inherited Item -> Inherited Component lists Form1 and Form2 from my 
> project. They are forms, not components, so "Inherited Component" title is 
> misleading.

Well, they are all components.

About "component" palette:
The component palette contains the components you can put onto a
designer form:
1. Components without an ancestor stream (e.g. TButton)
2. a button for frame, which is VFI with inlining.
Delphi has a third: component templates, which are components with
an initializing stream. That's easy to implement.

The components you can not put onto a designer form, TWriter calls
them "root components", are in the "new dialog".

I think the term 'inhrited forms' would be misleading, because
"inherited components" also contains any kind of root components:
frames, datamodules and custom root components.


Mattias




More information about the Lazarus mailing list