I have just downloaded Berlin and have pulled back in all my component sets; one of which is Abbrevia 10.0.

I have just downloaded Berlin and have pulled back in all my component sets; one of which is Abbrevia 10.0.

I have never had any problems with building using Abbrevia until now. I get the following:

[dcc64 Error] AbUtils.pas(946): E2003 Undeclared identifier: 'Windows'

but I get this over 60 times !

basically Windows should be Winapi.Windows. I have had a look around the code and it's all over the code and not just Windows. Example:

unit AbUtils;

{$I AbDefine.inc}

interface

uses
{$IFDEF MSWINDOWS}
Windows,
{$ENDIF}
{$IFDEF POSIX}
Posix.SysStatvfs,
Posix.SysStat,
Posix.Utime,
Posix.Base,
Posix.Unistd,
Posix.Fcntl,
Posix.SysTypes,
{$ENDIF}
{$IFDEF POSIX}
DateUtils,
{$ENDIF}
Types,
SysUtils,
Classes,
AbCharset;

Has anyone else experienced this?
If so, what is going on? and what can I do about it? Please don't suggest that I fix it myself because this should be working already ??

Comments

  1. Is this via GetIt or installing normally? The easiest solution is probably to add Winapi to the Library > Unit Scope section in the project or globally.

    I have it installed in Berlin and I don't remember having to do that, though.

    ReplyDelete
  2. David Millington It's via GetIT

    ReplyDelete
  3. David Millington Where is the Library > Unit Scope section ? Can't find it in Tools > Options or Project > Options ???

    I vaguely remember having to select some kind of namespaces checkbox last time ( for D 10.0 )

    ReplyDelete
  4. Looks like mine is installed from source I downloaded manually: https://github.com/TurboPack/Abbrevia.git and I have Winapi in the unit scope name, globally. I think it's requires for so many packages that I probably added it for something else.

    ReplyDelete
  5. Tony Danby In the project options: Delphi Compiler > Unit scope names. In the global options: Tools > Options > Environment Options > Delphi Options > Library > Unit scope names (make sure the right platform is selected at the top.)

    ReplyDelete
  6. David Millington That worked, thanks

    ReplyDelete
  7. Modern version of Abbrevia should resolve this

    ReplyDelete
  8. David and David ;-) I would be willing to convert it, but not right now, too much to do, but maybe early next week. My only problem is I do not have Git ( we use SVN ), so I cannot post my changes back.

    Actually, my bad. I think I can use Open from Source Control and Edit and post back that way. Would this be right?

    ReplyDelete
  9. I'm afraid I must say GetIt just doesn't work . :(

    ReplyDelete
  10. Krasimir Ivanov For the most part it works for me and I think GetIT will only improve with each version of Delphi released. So on balance I think I'd rather use it than not

    ReplyDelete
  11. Tony Danby Yes, you (and everyone) can use it. The source you get will be just not actual anymore and some packages will be missed in next version (Jedi foe example). But when it is ok, yes, you can use it :)

    ReplyDelete
  12. Getit is not really fit for use in a professional environment. By which I mean an environment where versioning matters. Typically in a professional development environment you need to be able to reproduce builds for old versions of the program, so that these old versions can be maintained. The Getit approach doesn't fit well with that.

    ReplyDelete
  13. David Heffernan Agreed, but am sure they will fix this at some point especially if we all complain about it ;-)

    ReplyDelete
  14. Tony Danby  I'm not sure that it is something that can readily be fixed. The design of package managers like Getit goes against versioning.

    ReplyDelete
  15. David Heffernan I think it could support versioning easily, it just doesn't currently. Why do you think the design precludes it?

    ReplyDelete
  16. Not the way I want to do versioning. I want to have all of my source control under my own control, under my own revision control system. I'm sure you are exactly the same.

    I see Getit as a convenience for hobbyists. Pro devs will continue doing what they have always done. I don't mean that in a bad way. There is a place for something like Getit. It just isn't for everyone.

    ReplyDelete
  17. David Heffernan Just curious: how do you handle the problem when the version of a library installed inside the IDE differs from that compiled with the project? Do you always change the design package when another library version is needed?

    ReplyDelete
  18. Uwe Raabe  I don't think that problem has a good solution. I've never been bitten yet by incompatibilities of that nature, but that's because my design time libraries tend to change very infrequently.

    If I was bitten by that I'd probably try to avoid working with the design surfaces in the IDE and instead edit .dfm files directly. You'd typically only be bitten by this issue when doing bug fixes on older releases and that tends to have less need to use design surfaces.

    But that's me. I expect for many peoples usage this would be a real problem.

    ReplyDelete

Post a Comment