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

All my Third-party RCL's Toolbars dissapearing with v10.06

edited May 2007 in General
Third-party RCLs Toolbar disappearing with v10.06



Have any one else noticing this?



After upgrading to RB v10.06 and re-installing all my RB third-party
components everything work OK, but after re-starting Delphi all RCL's
toolbars will disappear from the RB IDE, strangely their BPL's are listed as
"Installed" in Delphi IDE.



In my case is happening with RBGridPack and RBEan Barcode Library.



Regards



Carlos

Comments

  • edited May 2007

    The BDS IDE introduced in D2005 implements optimized/demand package loading.
    It only loads the packages that it thinks it needs. This does not work for
    RCL components - the solution is to add a line of code to force the package
    to be loaded.

    For an example check out RBuilder\Demos\RCL. You will find that myReg.pas
    contains a line of code that looks like this.

    procedure Register;
    begin

    {$IFDEF Delphi9}
    ForceDemandLoadState(dlDisable);
    {$ENDIF}

    ...

    end;


    --
    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com


    Best regards,

    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com
  • edited May 2007
    Hi Nard thanks for the quick reply.



    The line you mention has been in the RBGridPack for long time and in the
    RBEan as well, so I think I forgot to mention that everything was working
    fine until v10.06, I have also found your message concerning this same
    problem in Borland QC from Jan-2005 and it is exactly the description of my
    problem.



    But in my case it just started happening, I test 2 other computers upgrading
    to BDS2006/RB v10.06 and they start showing the same problem.



    Now may be this has nothing to do with it but in the History changes for
    v10.06 I see that something change in ppDesignerTools, ppIDE and ppToolbars,
    I had some problems compiling this same Third-Party RCL's but changing
    ppDesignerTools to ppToolResource fix the problem and I was able to
    Compile/Install, but then the ToolBars of this RCL's did not show in the RB
    IDE after a Delphi restart.



    As I said may be it is coincidence but I do not know where else to look.



    Does this make any sense?



    Regards



    Carlos



  • edited May 2007
    Hi, Nard

    I do have the ForceDemandLoadState(dlDisable) line in the Register
    procedure since RB9, but still the customer has the problem with BDS2006 and
    RBv10.0.6, but by rolling back to RBv10.0.2 and BDS2006, the problem
    disappeared, what am I missing in addition to replace ppDesignerTools with
    ppToolResources?

    Regards,

    William
  • edited May 2007

    - If you manually remove and re-add the package at Delphi design-time, then
    does the component re-appear on the Report Designer palette. (If so, then
    that would indicate an issue with the package not being loaded by the Delphi
    IDE). You can try putting some ShowMessage calls in your registration unit -
    such as the Initialization section and the Register section. Another
    possibility is that your package is being loaded too early - before the RB
    packages get loaded, perhaps - I don't know whether that is possible or not.

    - I do not think anything has changed since RB 10.0, other than we removed
    some unused units. Check out the RBuilder\Demos\RCL example. The sample
    checkbox works properly.




    --
    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com

    Best regards,

    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com
  • edited May 2007
    Hi Nard


    That will Negative, adding the BPL will not do it.

    The package is checked in the "Design Packages" dialog, but the only way to
    make "temporarily" reappear in the Report Designer palette is by removing
    the BPL via the "Design Packages" dialog, then Re-Compile/Re-Install the DPK
    again, after that you have it back in the Report Designer palette as long
    you do not restart Delphi, so it must be loading it differently when you do
    it manually than when Delphi Starts.

    Also Barcode Library by PSOFT has the same problem, the toolbar disappear
    from the palette after upgrading to v10.06 and restarting Delphi.

    Regards

    Carlos

  • edited May 2007
    Hi, Nard

    Is "ForceDemandLoadState(dlDisable)" only for D2005 or need to use it for
    BDS2006/2007 as well?

    William

  • edited May 2007

    Required for all BDS IDE - D2005, D2006, D2007 and my guess is that it will
    be required for the future. Optimized package loading is a good thing, I
    don't see them removing it. However, the Delphi IDE optimization logic
    cannot auto-detect that the RCL components need to be loaded. We have the
    same issue with the DADE plug-ins.



    --
    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com

    Best regards,

    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com
  • edited May 2007
    William, Nard

    I found a temporary workaround, I change dclRB9GridPack.bpl registry key
    "Demand Load Package" from 1 to 0, but because every time I close Delphi the
    value returns to 1 I exported the KEY to a ".reg" file on the desktop that I
    must run every time before opening Delphi, and now it woks every time with
    RB v10.06.

    The strange thing is that I only change the GridPack entry and that also
    makes RBEan package Toolbar to appear in the RB Design Time palette.

    The complete key is:

    [HKEY_CURRENT_USER\Software\Borland\BDS\4.0\Package
    Cache\dclRB9GridPack.bpl]
    "Demand Load Package"="0"

    Hope it helps find a solution.

    Regards

    Carlos

  • edited May 2007
    That could be explained, since in GridPack Register procedure, Only D2005
    has "ForeceDemandLoadState(dlDisable)", the rest don't have.

    Thanks

    William

  • edited May 2007
    William

    D2005 and up? or just D2005?

  • edited May 2007
    it was just D2005

  • edited May 2007
    You are right, I adjust it to D2006 (ver180) when I install the GridPack in
    BDS2006, it was working fine for long long time until RB v10.06

    Regards

  • edited May 2007
    So at this point, Is this problem consider to be caused by RB v10.06?

  • edited May 2007

    This is not a problem with RB. Please re-read this thread.

    - I clearly stated that ForceDemandLoadState is required for D2005, D2006,
    D2007....

    - William clearly stated that GridPack only implements ForceDemandLoadState
    for D2005. Thus the problem.

    - Again, please see RBuilder\Demos\RCL for an example of a correctly
    implemented RCL component.


    --
    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com

    Best regards,

    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com
  • edited May 2007
    Hello Wiliam,

    because i want to update to 10.6 in the next time, did you support 10.06 and
    also D2007?


    --
    best regards
    chris (EULANDA)

    www.eulanda.com
    ERP SOLUTIONS
  • edited May 2007
    > This is not a problem with RB. Please re-read this thread.

    Sorry Nard I think I was not clear, I said in my previous thread that I
    adjust the component my self long ago, this was when I move from D7 to D2006
    and it was as simple as changing the line {$IFDEF VER170} to {$IFDEF
    VER180}, since then everything was OK until recently with RB v10.06.


    Again I made the change my self and William confirm me that that change is
    the only one to make it work with D2006/RB v10.+


    It complies unless William says otherwise.

    So I insist something change in 10.06, I have test 4 machines now, one I
    even re-format it, install D2006, RB v10.02 eveything was OK until upgrading
    to RB v10.06.

    Carlos

  • edited May 2007
    Hi, Chris

    Replace unit ppDesignerTools with ppToolResources, you are able to upgrade
    the current version of GridPack to 10.0.6 and D2007

    William

  • edited May 2007
    Also, why RBEan a RCL that was working also OK until 10.06, appears when
    changing the dclRB9GridPack.bpl registry key "Demand Load Package" from 1 to
    0.

    Why not above workaround only makes GridPack appear instead of both GridPack
    and RBEan?

    Carlos

This discussion has been closed.