Subject Re: [IBO] Newbie -- Installation Problem
Author Paul Vinkenoog
Hi Warren,

> I got IBO4 to compile Ok with CBuilder 5 Pro. I have not yet made
> the source code changes shown below. The problem was that CBuilder
> 5 just refused to find the obj and lib files. The missing files
> were either in the "inter" folder or the $(BCB)\Lib folder, both of
> which were in the search path. To get it to compile, I added the
> explicit paths to the libray search list: C:\Program
> Files\Borland\CBuilder5 \Lib\ and C:\ibo4\inter. Now it compiles
> without linker errors.

$(BCB)\lib is in the default BCB lib path, and it's also in the IBO
project files (.bpk). It shouldn't be necessary to specify it again as
an absolute path. But I recall your problem here was with C0PKG32.OBJ
which the linker wanted to find as COPKG32.OBJ (letter O instead of
zero). Or was that just a typo in your email?

inter is not in the default lib path and I wouldn't put it there if I
were you. It's also not in the project lib path of IBO40VRT_C5.BPK
(the one you had linker problems with). It doesn't hurt to put it in,
but it shouldn't be necessary because in the OBJFILES section, all
object files are specified as

inter\IB_NavigationBar.obj
inter\IB_ActionNavigate.obj

etc... only inter\IBD_Restructure.obj is completely missing. This
leads to a linker error, because IB_SearchBar specifies
IBD_Restructure in the uses clause.

(IBD_Restructure.pas is in the project dir, so that one is found and
compiled to inter\IBD_Restructure.obj, but the latter is not found by
the linker.)

Now, adding inter\IBD_Restructure.obj to OBJFILES (as it is in
IBO40VRT_C6.BPK) solves that error. But so does adding inter to the
lib path, because in that case the linker also looks there to find
object files.

> Paul: Do I still need to make the source changes?

The build was succesful. There might be some code missing from your
build now (a couple of extern declarations) but that doesn't seem to
hurt: I just built it "your way" myself and the ibdRestructure thingy
still worked.

If you want to check for yourself: drop a TIB_SearchBar somewhere
on a form (or better: use an existing one), open its property
VisibleButtons in the Object Inspector and set sbRestructure to
true. Run the app and click on the extra button that has now appeared
in the SearchBar. This opens a dialog where you can hide/unhide fields
in a query, and change the field ordering.

However, being a purist I'd certainly drop inter from the libpath,
make the 3 changes in the source files (*) and rebuild IBO40VRT_C5
--but I'll leave it entirely to your own conscience if you want to
follow that advice ;-)



(*)
It turns out to be even simpler: if you open the project and just
insert the line

USEFORMNS("IBD_Restructure.pas", Ibd_restructure, dlgRestructure);

into the cpp file, and then click "Save all", the 2 changes in the
project file (.bpk) are made automagically.



Greetings,
Paul