Home General
New Blog Posts: Merging Reports - Part 1 and Part 2

upgrade to Dephi 2005 subclassing failure

edited July 2005 in General
Our upgrade to Dephi 2005 (from D6) is done, except for Report Builder -

We purchased/installed correctly, however, we have an in-house component
that is

A. Derived from a TComponent
B. Uses a TppRichText object as a property of itself.

Here's the problem: In order to use a TppRichText control, I add ppRichTx to
the uses clause of my object. The minute I do this, my package won't
install, telling me: "TRaTPPPrinterSetupRTTI already exists; cannot install
package"

Can anyone tell me how to resolve this? Our only other solution is to not
use RB as we go forward, and give Crystal a whirl instead. As I said, we're
good to go for Delphi 2005 development, except anything descended from an RB
control is our only issue to move forward.

Help appreciated.

Comments

  • edited July 2005

    If you create a component that 'uses' any RB units. Then your component
    package must 'require' one or RB packages. In this case, you need to require
    rbRCL99.

    BTW, if you use crystal you cannot derive from any of its components, its
    not native Delphi, nor does it provide an extensible class framework like
    RB. I do not follow your argument for switching at all.



    --
    Nard Moseley
    Digital Metaphors Corporation
    http://www.digital-metaphors.com



    Best regards,

    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com
  • edited July 2005
    Thanks for the quick reply, but this doesn't help. If I add rbRCL99 to my
    package and try to recompile, and I get a message simply stating "Cannot
    install package" with no error message and no warnings. Just fails, even if
    I let it find out it needs your package by itself.

    You don't follow my argument for switching? I've installed Woll2Woll
    (Infopower and 1st Class), RAIZE components, Addict Spell Checker, and some
    Developer Express components. Everything else works, but I'm two days into
    getting three subclassed RB components installed, hence it's getting to the
    point where it's not worth the effort. That's why we only bought one license
    before we go site wide. I've been working in Delphi since the Beta of 1.0,
    and if I can't even get a set of packages installed, based upon someone
    else's code, then it's obviously time to start looking elsewhere.

    Thanks anyway, but as stated, all I have to do is remove the three compents
    using/based upon any of your code, and we compile and run, which is our
    utmost goal.

  • edited July 2005

    Sounds like your are frustrated, I can relate to that - working with
    packages in Delphi can be extremely frustrating.

    What we need to solve the problem is more information. If you would like to
    create a simple, minimal example that demonstrates what you are trying to
    accomplish, you can send in zip format to support@digital-metaphors.com and
    we can check it out here.

    An example of creating a custom component can be found in
    RBuilder\Demos\RCL. The example contains commented code. An article on the
    changes made to the RB 9 architecture is found below.

    The Delphi 2005 IDE is rather new and Borland implemented a new 'on demand'
    loading scheme for packages. For our packages to load correctly we had to
    disable that feature (otherwise our packages never loaded).


    ForceDemandLoadState(dlDisable);





    --
    Nard Moseley
    Digital Metaphors Corporation
    http://www.digital-metaphors.com



    Best regards,

    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com
  • edited July 2005

    Here is the article I mentioned in the prior post..

    ---------------------------------------
    Article: RB 9 Architecture Changes
    ---------------------------------------

    ReportBuilder 9 includes architecture changes to more cleanly separate
    Designer code from Report code. The code related to component popup menus
    and design controls has been broken out into separate classes.

    For an example, check out RBuilder\Demos\RCL.


    The myChkBox.pas unit contains the component classes....


    TppCustomComponent

    |
    |

    TMyCustomCheckBox

    |
    |-- TmyCheckBox
    |
    |-- TmyDBCheckBox


    The myChkBoxDesign.pas unit contains popup menu and design control classes.
    These are compiled into a separate package.


    A. Popup Menu classes....

    TppComponentPopupMenu

    |
    |

    TmyCustomCheckBoxPopupMenu

    |
    |-- TmyCheckBoxPopupMenu
    |
    |-- TmyDBCheckBoxPopupMenu


    B. Design Control classes.....



    TmyCustomCheckBoxControl

    |
    |

    TmyCustomCheckBoxPopupMenu

    |
    |-- TmyCheckBoxControl
    |
    |-- TmyDBCheckBoxControl




    --
    Nard Moseley
    Digital Metaphors Corporation
    http://www.digital-metaphors.com


    Best regards,

    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com
This discussion has been closed.