Subject Re: [IBO] Re-post: 'Class TIBOBCDField not found'
Author Geoff Worboys
> I done this four times without success. I am crazying with it.
>
> Could you give more any tip?

The IB_Registration.pas unit is responsible for registering the
special field classes. Be sure it is included in the package you are
building.

TField registrations are achieved through a special VCL function.
There is a function pointer (RegisterFieldsProc in db.pas) that is
only defined when a particular designtime unit is loaded (dsdefine.pas
in Delphi5).

I **suspect** that what happens in some situations is that the package
setup forces IBO to load before the particular VCL designtime package
is loaded, resulting in the field class registration being missed.

In my situation I was getting any "invalid field registration" error
that occurs when the procedure pointer is not defined. I can only
think that there is something in your setup which is catching and
ingoring this error.

You could try this...

Update IB_Registration.pas so that in the implementation "uses" clause
where you see...

{$IFDEF IBO_VCL40_OR_GREATER}
IB_ActionNavigate,
IB_ActionTransaction,
IB_ActionUpdate,
{$ENDIF}


add the unit that defines the registration function. eg;

{$IFDEF IBO_VCL40_OR_GREATER}
IB_ActionNavigate,
IB_ActionTransaction,
IB_ActionUpdate,
dsdefine,
{$ENDIF}


Alternatively you could try adding dcldb40 to the requires clause of
the IBO package. I think it is dcldb50 in Delphi5 that contains
dsdefine.

Either of these should force the initialisation to occur before the
registration of the IBO fields.

No idea if this will work, but its worth a try.

Geoff Worboys
Telesis Computing