[Lazarus] Object Inspector reuse ?

Michael Van Canneyt michael at freepascal.org
Thu Sep 8 09:13:49 CEST 2016



On Thu, 8 Sep 2016, Mattias Gaertner wrote:

> On Thu, 8 Sep 2016 08:04:18 +0200 (CEST)
> Michael Van Canneyt <michael at freepascal.org> wrote:
>
>> [...]
>>   // IMPORTANT: the object inspector is a tool and can be used in other programs
>>   //            too. Don't put Lazarus IDE specific things here.
>> 
>> If you look at the above 'Important' warning and then look below:
>> 
>> [...]
>>    // IdeIntf
>>    IDEImagesIntf, IDEHelpIntf, ObjInspStrConsts,
>>    PropEdits, PropEditUtils, ComponentTreeView, OIFavoriteProperties,
>>    ListViewPropEdit, ImageListEditor, ComponentEditors, ChangeParentDlg;
>> 
>> 
>> Everything below "IdeIntf" seems quite "Lazarus IDE specific" to me.
>> So the 'Important' warning can be removed, it is useless.
>
> These are property editors for the FCL/LCL types and the component tree
> view.  They are LCL specific, not IDE specific.

I beg to differ somwhat.... 
A quick glance reveals that they reference for example the help system of the IDE.
IDEWindowIntf is also not really something I want in my end-user binary.
I can probably find more..

> If you don't need the LCL editors, it should be easy to add some IFDEFs.

That will create a serious mess, because for my project I would need to
enable the define, and when compiling the IDE the define must be disabled
etc.

IMHO Better is to have a TBaseObjectInspector/TIDEObjectInspector approach: 
a base class that can be used without all (or most of) the IDEIntf stuff, 
and a descendent that uses the IDE stuff to provide additional functionality.

As far as I can see, the only needed thing is the PropEdits unit, since that
is what is needed to enable property editors.

Michael.


More information about the Lazarus mailing list