We have a problem with named spacing ( or rather the lack of it ). I'll elaborate:

We have a problem with named spacing ( or rather the lack of it ). I'll elaborate:

We have Tokyo 10.2.1 and we have Dev Express 17.1.5 and when we compile our component set that is descended from some Dev Express ones we get an error ( that we never got with previous versions of either Delphi or Dev Express ). The error is:

[dcc32 Fatal Error] cxEditRepositoryEditor.pas(42): F2613 Unit 'Graphics' not found.

When we look at the unit in question it start with:

unit cxEditRepositoryEditor;

{$I cxVer.inc}

interface

uses
DesignIntf, Variants, Windows, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs, cxDesignWindows, StdCtrls, cxEdit, Menus, ExtCtrls;

type
TcxEditRepositoryEditor = class(TcxDesignFormEditor)

So it's no surprise it can't find Graphics because it should be Vcl.Graphics

Now, I seem to recall there was some way in Delphi to tell it that if it encountered Graphics to use Vcl.Graphics instead and so on for all other units, but I have tried like crazy to find that option / selection.

Can anyone help me ?

Thanks

Comments

  1. Perhaps in project options at "Delphi Compiler" -> "Unit scope names"?

    ReplyDelete
  2. Cristian Peța No that doesn't seem to be it; thanks for the reply though

    ReplyDelete
  3. Same screen, 2 options above: "Unit aliases"?

    ReplyDelete
  4. Cristian Peța Tony Danby Yes, it is ("Unit scope names"). Add "Vcl" there (among some others that you will encounter) (make sure to select "All configurations" in the combobox on the top of the page)

    ReplyDelete
  5. If you don't fully qualify the unit names, the insight parsers will slow down.

    ReplyDelete
  6. Lars Fosdal It's out of our control, as it is in the Dev Express libraries ... I have also raised a ticket with them, but they are slooooooooow to answer

    ReplyDelete
  7. No, you don't want to use unit aliases for this. You'd have to alias every individual unit. Cristian Peța is correct, it's the unit scope names.

    ReplyDelete
  8. David Heffernan I am currently having a very heated debate with Dev Express about this, as it's their components causing all the issues

    ReplyDelete
  9. Tony Danby It is not only DevExpress - a lot of libraries have the same problem.

    ReplyDelete
  10. Uwe Raabe Do you know why ? This has only just started for us with Tokyo 10.2.1 and DX 17.1.5 ( latest ), but prior to that we were on DX 16.x and Berlin 10.1 and never had any of these issues..... Now we can't compile any of our apps built using DX

    ReplyDelete
  11. /sub as my dx account will be charged september

    ReplyDelete
  12. Dany Marmur FYI; Right now the conversations between myself and DX are getting quite heated; as no one there is listening properly and no one seems able to resolve it either ..... My spidey senses and telling me this is going to get nasty

    ReplyDelete
  13. Tony Danby Probably because vendors are supporting Delphi versions below XE2 where those scope names were introduced. A common way to cope with this is to properly set the unit scope names. Alas, that puts the burden onto the developer to do the same when using such a library.
    The solution is indeed somewhat nasty for the library vendor: he has to IFDEF all uses clauses in his units. On the other hand, if he gets real money for his product that probably can be expected from him.

    ReplyDelete
  14. Tony Danby​, it is not unheard of that they have a less than optimal attitude. I'll look up your ticket tomorrow and vote :) but personally scaled dpi is the current focus re desktop vcl. Good luck!

    ReplyDelete
  15. Could not find you ticket, maybe it is "private".

    ReplyDelete

Post a Comment