Scripter TDataSet Fieldeditor


is there a method to enhance the scripter internal FieldEditor with new Fieldclasses?

I implemented the TIBODataset from the IBObjects which is a complaint to the TDataSet.
I used to work in the designer with physical TFields because it makes Life much easier to design displaynames/widths/visible for dbgrids.
When you load the TFields from the TIBOQuery into the Fieldeditor a few fieldclasses has its own IBO FieldClasses as eg the TIBOFloat. But with exactly such fields the scripter internal Fieldeditor have Problems.
By Running the Script such Fields calls error of not founding the TIBOFloatField Class. But in DesignTime you see the Fields declarated correctly as TIBOFloatField (also in the *.sfm file)
When there are no physical TFields and you call in Scripter ShowMessage ( TIBOFloatField(MyQuery.fieldbyname('CURR')).asstring ); all works without problems it seems not a problem of missing classes.
my intent is that the internal scripter Fieldeditor can not handle other fieldclasses by default. At the moment my turnaround is to change the TIBOFloatField declarations in the .sfm file into TFloatField. is there a method to add new field like in Delphi the IBO-Component do via

Data.DB.RegisterFields( [ TIBOFloatField
                          , TIBOBCDField
                          , TIBOLargeIntField
                          , TIBOWideStringField ] );

or mybe any other hint?

sorry for long message, but english is not my native language so i struggled bwith formulationg the question
best regards

Hi Markus,

Looks just like a streaming problem, not a fields editor problem. Have you tried just registering the field into Delphi classes system? Like this:


yes, that fixed the error :) - Thank you

hmm... just to asking for background: in which cases can such Problems accour. I never needed before by registering other 3rd Party Components in Scripter.

Big THX for your help.

It's a Delphi thing, not scripter. It's needed whenever Delphi needs to read a component from stream, the class declared in the stream must be registered. In scripter it usually doesn't happen because you need to call RegisterComponent to register a component in scripter pallete - for example, if you need to register TMyButton to be available in scripter IDE, you call IDEEngine1.RegisterComponent(TMyButton). Then, scripter automatically calls RegisterClass when you call RegisterComponent.

In the case of your field type, it was never registered anywhere, so you would need to do that.