Jump to content

Uwe Raabe

Members
  • Content Count

    2902
  • Joined

  • Last visited

  • Days Won

    169

Everything posted by Uwe Raabe

  1. Depends on the point of view. Delphi occasionally checks its license - either at Embarcadero servers or at the ELC server in your local network. That is the same in a VM as with a bare metal system. Of course if can, but there simply is no need for it. If anyone is that keen to inspect the hidden connections of ELC: Test it yourself - it can be installed for free. Anyway, if someone always suspects bad intentions in things from Embarcadero it may be better to move to something else.
  2. Well, I didn't invest the time to check if everything works even when there is no internet connection for years. Also I don't know about some shady stuff - at least not for anything above a CE license. I can only tell about my own experiences and that they are pretty good. If you are after a detailed security investigation, I am not the right person to ask. BTW, you can even use Delphi when there is no connection to the ELC server for up to 30 days.
  3. You cannot. I just explained what can be done to be independent when that happens next.
  4. Most of that is covered in the link. Basically you set up ELC somewhere on your local network. I suggest using a dedicated VM, even if that resides on your one and only Computer. Then download the license files from ELC and use the named<xxx>.slip for each Delphi installation. You can run the same Delphi version on up to three computers. Converting to a Network Named License is usually best done when renewing your subscription. Otherwise they may charge a small fee.
  5. Not that I am aware of - unless you initiate it to update your license (f.i. for a new major release). I don't know that, but I also have never searched for it. What I can confirm due to own experience is, that working with the IDE as well as installing Delphi works even with no internet connection. I also suggest to strip the Welcome Page from everything requiring a working internet connection. Mine has just the Create New and Recent Files/Favorites. It also feels quite a bit faster.
  6. See part two of my answer. The ELC Server provides a slip file to be used for that.
  7. Uwe Raabe

    D12 CatalogRepository Problem!

    What prohibits you to take the files installed in CatalogRepository? Even a standalone installer would not make a difference when you are using a dedicated repository. Let me explain my workflow with 3rd party libraries: install as usual (Setup or GetIt) and remove any unwanted references (mostly search paths) in Delphi inserted during the installation if not done before, create a new repository at a convenient place and create a vendor branch switch the repository to vendor branch copy the files from the installation to the repository and commit to vendor branch merge vendor branch into main branch. Depending on your situation you may get away with global library repositories used for all projects, but I prefer local sub-repositories for each project. I also remove any 3rd party library folders in the IDE and have the local libraries added to the project search path.
  8. You still can install from ISO. I suggest converting any Workstation License into a Named Network License and setting up your own ELC server. (see Software Licensing and Management) IMHO, all professional developers, especially companies, using Delphi should already have done this.
  9. Uwe Raabe

    D12 CatalogRepository Problem!

    Don't use GetIt to handle your library sources. Although I may use GetIt to install some of its libraries, I always put those into my own repository where they can be accessed from the build server.
  10. Uwe Raabe

    Does FireDAC allow more than one connection?

    FireDAC has no problems with multiple connections. There must be something wrong on your side.
  11. I guess that is just a coincidence. Given the number of outages before, it probably is that piece of hardware dying since months.
  12. Neat: https://www.idera.com/ppc/uptime-infrastructure-monitor/it-performance-monitoring
  13. Uwe Raabe

    D12 Welcome Page

    Just in case: you can enlarge the plugin, too.
  14. Uwe Raabe

    D12 - No more "unknown custom attributes"

    That is the same with all warnings and hints. If you want to avoid the complete build you can use a Syntax Check.
  15. Uwe Raabe

    What is otares?

    During the upgrade process the unknown resources are moved to the .otares file and the dpk gets a reference for that. The recommended process in such a case is to use decent resources for the unknown ones and get rid of the .otares and the corresponding entry in the dpk. In the majority of cases the otares only contains a resource named PLATFORMTARGETS, which references targets no longer supported by the newer Delphi version. A typical otares file in that case has 96 bytes and can just be removed completely. Unfortunately some library vendors and open source libraries didn't grasp this and deliver these otares files. The warning you are referring to may be caused by something else. Perhaps one or more of those unknown resources were later added as regular resources to the project, which leads to the duplicate warning. The linker just detects resources with the same name, which cannot be resolved into one module.
  16. Uwe Raabe

    Help with 'Continue' pls.

    I know, most likely I'm biased, but I'm not aware of any other working dataset enumerator than this one: https://github.com/UweRaabe/DataSetEnumerator. First described a couple of years ago on my blog: Dataset Enumerator Reloaded and now part of CmonLib.
  17. Uwe Raabe

    Help with 'Continue' pls.

    It basically one of the rare cases when documentation was updated, but the underlying feature was dropped just before the release for several reasons. So it boils down to just fix the docs.
  18. Uwe Raabe

    Help with 'Continue' pls.

    Did you actually try that? Even in Delphi 12 this report is still valid: https://quality.embarcadero.com/browse/RSP-39614
  19. Uwe Raabe

    Delphi 12 IDE: unchecking a component is NOT SAVED

    When a project is loaded all changes are local to the project. When no project is loaded all changes should be permanent. This has been the behavior since the beginning of Delphi, but that volatile unchecking bug crept in some time ago. Versions up to Delphi 7 even had a checkbox to make it permanent while a project is open (sorry, I only have a German D7 at hand)
  20. Uwe Raabe

    Delphi 12 IDE: unchecking a component is NOT SAVED

    Interestingly it works the other way round: When you check one of the Microsoft Office Automation Server packages it will stay checked when the IDE is restarted. Now you just can't get rid of it again by just unchecking...
  21. Uwe Raabe

    Delphi 12 IDE: unchecking a component is NOT SAVED

    This is already known: https://quality.embarcadero.com/browse/RSP-14289
  22. I did a quick check and at least in D12 and D11 the backup files are located in the __history subfolder. I'm pretty sure that this works this way since quite a couple of versions. Also, these files are not extended with ~pas or ~dfm, but version numbers ~<number>~, which correspond to the versions shown in the History tab.
  23. You know that Embarcadero is barely monitoring this forum, don't you? If you want your rant being heard better contact a PM or sales representative. What do you think is done during beta tests? The actual number of installation tests most likely exceeds your request of 20 or 30 by magnitude. Unfortunately there are still some scenarios not covered by the testers. The best way to get these covered is to analyze the cause for the error and file a QP report with that information. Thinking about past events with a similar error: Did you by any chance make use of the "Remove unused paths" action in the library editor?
  24. I cannot speak for Tommi, but I had a need for such a data structure where ranges of numbers were given in string format like "2,3,5,7-11,15-31" and the numbers going up to 6 digits. The actual testing for a given number being part of that was implemented by parsing the string each time, which turned out to be a bit time consuming. So we refactored it using a data structure similar to that shown above.
  25. A pretty simple implementation (assuming ranges are non-overlapping and added in the right order) could look like this: type TRanges = class private FLow: TArray<Integer>; FHigh: TArray<Integer>; FType: TArray<Integer>; public procedure AddRange(ALow, AHigh, AType: Integer); function Contains(AValue: Integer; out AType: Integer): Boolean; end; procedure TRanges.AddRange(ALow, AHigh, AType: Integer); begin FLow := FLow + [ALow]; FHigh := FHigh + [AHigh]; FType := FType + [AType]; end; function TRanges.Contains(AValue: Integer; out AType: Integer): Boolean; var idx: Integer; begin Result := False; if not TArray.BinarySearch<Integer>(FLow, AValue, idx) then begin if idx < 1 then Exit; Dec(idx); end; if AValue <= FHigh[idx] then begin AType := FType[idx]; Result := True; end; end;
×