Subject Re: [IBO] IBO source structure
Author Geoff Worboys
Just to extend Helen's explanation a little - from a component writers
perspective...

IB_* - General
IBA_* - base components
IBC_* - controls
IBD_* - dialogs
IBF_* - forms
IBG_* - grid related

IBDataset.pas (IBO3) or IBODataset.pas (IBO4) provide TDataset
derivatives


In most places the *.INT and *.IMP are fairly obvious and self
explanatory (after reading Helens notes). For example; if you look at
IB_Components.pas you will see where most of the IBA_* files are
included, likewise IB_Controls.pas include the IBC_* files and
IB_Grids.pas include IBG_*.

There are a few special files which are of special relevance to
component developers. Specifically...

To reduce duplicate code IBO has the following files...

IB_Control.INT/.IMP/.PBL - defines stuff common to TControl
derivatives

IB_WinControl.INT/.INT/.PBL - defines stuff common to TWinControl
derivatives. Note that these units include the respecitve
IB_Control.INT

IBC_CustomEdit.* - defines stuff common to TCustomEdit derivatives
(includes respective IB_WinControl).

IB_Classes.INC and IB_UserClasses.INC - provide ifdefs that manage
interpretation within the above files.

If you have a copy of the IBO3 source take a look at the IBC_BitCheck*
files which explain how the above files can be used to minimise code
requirements when creating your own components. Alternatively
download the EnhComponents which also make extensive use of the above
files.


Generically useful code is mostly found in IB_Parse.pas and
IB_Utils.pas. See the notes inside these units.


In IBO4 there are some additional files which you will want to be
familiar with...

IB_ControlInterface.pas - defines the interface required to allow
controls to be dropped onto IB_Grid (and also used in AutoLabel
processing). See the notes in the file for details.

IB_MaskInterface.pas - defines the interface required to add your own
edit mask processing to IBO.

Both IB_LookupCombo and IB_ComboBox make use of the
IB_ControlInterface.pas. To see IB_MaskInterface.pas in use you will
need to get the new version of EnhComponents - send me an email
privately.


Obviously this is not comprehensive but should give you a good
starting point.

HTH

Geoff Worboys
Telesis Computing