Jump to content

Nigel Thomas

Members
  • Content Count

    102
  • Joined

  • Last visited

Posts posted by Nigel Thomas


  1. I was in a similar situation, with Berlin 10.1 installed. When I installed CE 11.3 it was missing the option to install for other platforms, only Windows 32bit and 64bit. I messaged Marco Cantu who looked into it, and said this was by design. If a licenced copy exists on the same system then the CE versions will not allow installation of the other platforms. When I installed the CE version in a clean VM those platforms were available.

     

    Edit to add: Mac OS was also available with Berlin installed, as well as Windows; so as per the OP Android, IOS and Linux are not.

     

    More edit: I've now had a chance to review my correspondence with Marco Cantu and he did not say this was "by design", I didn't mean to misrepresent his comments. Rather, he informed me that this was a licence conflict. My experience goes back to installing CE 10.4, which is when I wrote to Marco. Our correspondence ended then as there was no fix offered, just " we have seen similar scenarios ".


  2. On 2/12/2025 at 6:31 PM, Remy Lebeau said:

    I didn't create the zip file, so I can't help with that error.  If someone wants to fix the zip, I'll replace it.

    I've recreated the zipfile using Winzip 14.5, opens fine with Windows 11 Explorer. Too large to upload here (11.9MB), let me know if you'd like me to email it to you or upload it somewhere else.


  3. Using D12.1 CE.

     

    I can do this:

     

    TMyRec = record
    private
      function ConvertStrAToNum: Integer;
      .
      function ConvertStrNToNum: Integer;
    public
      StrA: string;
      .
      StrN: string;
      property IntA: Integer read ConvertStrAToNum;
      .
      property IntN: Integer read ConvertStrNToNum;
    end;
    
    function TMyRec.ConvertStrAToNum: Integer;
    begin
      Result := StrToInt(StrA);
    end;
    .
    function TMyRec.ConvertStrNToNum: Integer;
    begin
      Result := StrToInt(StrN);
    end;

     

    What I'd like to be able to do:

    TMyRec = record
    private
      function ConvertStrToInt(const StrToConvert: string): Integer;
     public
       StrA: string;
       .
       StrN: string;
       property IntA: Integer read ConvertStrToInt(StrA);
       .
       property IntN: Integer read ConvertStrToInt(StrN);
     end;
     
    function TMyRec.ConvertStrToInt(const StrToConvert: string): Integer;
    begin
      Result := StrToInt(StrToConvert);
    end;

    But I can't.

     

    Context: I'm reading strings into the record, as that is how they are read from a datafile. I could just parse the string data into integers as I read the file, but I thought the above option might be more elegant, as the conversion would only be done if later in the app I require the integer representation of the string data.


  4. Hi All,

     

    Is it still possible to access the GetIt server from Delphi D10.1 Berlin?

     

    With ServiceURL set to the installed default for D10.1 (https://getit.embarcadero.com) I just get the error message:

    The Embarcadero GetIt server could not be reached

     

    If I change the ServiceUrl to https://getit-olympus.embarcadero.com I connect to the GetIt server but I only get a small subset (11) of packages available to download. No filters are set.

     

    GetIt is configured to work online.


  5. This is the Delphi 12.1 (and as far back as 10.1 at least, but not in D2007) definition of ShellExecuteInfoW (the A version has the same issue):

    _SHELLEXECUTEINFOW = record
        cbSize: DWORD;
        fMask: ULONG;
        Wnd: HWND;
        lpVerb: LPCWSTR;
        lpFile: LPCWSTR;
        lpParameters: LPCWSTR;
        lpDirectory: LPCWSTR;
        nShow: Integer;
        hInstApp: HINST;
        { Optional fields }
        lpIDList: Pointer;
        lpClass: LPCWSTR;
        hkeyClass: HKEY;
        dwHotKey: DWORD;
        case Integer of
          0: (
            hIcon: THandle);
          1: (
            hMonitor: THandle;
            hProcess: THandle;);
      end;

    According to the definition in MSDN, the hProcess Handle is not part of the union:

    typedef struct _SHELLEXECUTEINFOW {
      DWORD     cbSize;
      ULONG     fMask;
      HWND      hwnd;
      LPCWSTR   lpVerb;
      LPCWSTR   lpFile;
      LPCWSTR   lpParameters;
      LPCWSTR   lpDirectory;
      int       nShow;
      HINSTANCE hInstApp;
      void      *lpIDList;
      LPCWSTR   lpClass;
      HKEY      hkeyClass;
      DWORD     dwHotKey;
      union {
        HANDLE hIcon;
        HANDLE hMonitor;
      } DUMMYUNIONNAME;
      HANDLE    hProcess;
    } SHELLEXECUTEINFOW, *LPSHELLEXECUTEINFOW;

    Does that mean that the Delphi translation is faulty?


  6. @cupboy

     

    Reply back and threaten them with action from whatever comsumer rights legislation you have in your country. In the UK it's Trading Standards.

     

    Refer them to this blog from their General Manager, particularly the "Policy Update" section;

    https://blogs.embarcadero.com/from-the-gm-new-updates-and-changes-to-the-registration-bumps-policy/

     

    It really irks me when Embarcadero try to weasel out of their contractual responsibilities. When we purchase their product the licence is "lifetime" - the subscription element is an add-on that can allow you to keep updated at a lower price than buying new licences, but it is in no way mandatory. What is mandatory is that the lifetime licence for the product you purchased is honoured. Registration limits are there to prevent you from installing more than x installations at any one time. They should not (and in most jurisdictions, cannot) be used to stop one from migrating an installation to a new system.

    • Like 2

  7. Contact Sales. They are obliged to provide a download link to the software you have purchased. They did for me when I needed to re-install D10.1 Berlin. Although I did make sure I stored a copy of that installer in a safe place for the next time I need it!

     

    Nigel

    • Like 1

  8. 5 hours ago, David Heffernan said:

    No, this is not possible in Delphi 2007. You can declare typed constants for fixed length arrays, but not dynamic arrays.

    Thanks. I've worked around it by declaring FileSig.arrSig as a fixed array, e.g: array [0..4] of byte, then I can set the const array using padding where necessary e.g. arrSig: ($00, $01, $02, $00, $00); By adding a SigLength to the FileSig type I will know what padded bytes I can remove when I come to using the array.


  9. Hi,

     

    The following access violation occurs when running the "HTTP Dowload List of Files" snippet with the program compiled as 64Bit:

    HTTP Error - Access violation at address 000000000090E55F in module 'OverbyteIcsSnippets.exe'. Read of address 0000000000000004

    It works seamlessly with no errors when the program is compiled as 32Bit.

     

    Using latest svn version of ICS 9.1, compiled using D11.3 CE running on Windows 10 and on Windows 11.

     

    Full diagnostic attached.

     

    Is this issue duplicatable or just something to do with my setup?

    diag.txt


  10. 6 hours ago, Luis Enrique said:

    I've already seen that the old Embarcadero Getit server is not working. So, what should I do to make it work again?

    Check where the GetIt server is pointing and try an alternative. In the registry key HKCU\Software\Embarcadero\BDS\21.0\CatalogRepository look at the value for "ServiceUrl". If it isn't already, change this to https://getit.embarcadero.com and retry the installation. That's the url my copy of D10.4 (CE) is pointing at, and the GetIt Package Manager seems to connect fine.


  11. I've used FileZilla for some time. I've just checked my latest installation:

     

    Version 3.66.5

     

    Signature:

     

    image.png.b333f8ad28f7ca98be644e27620e1d9a.png

     

    VirusTotal:

    image.thumb.png.1f684dfbbbb4bb1fb25b2227a3e4feee.png

     

    As @Vincent Parrettsuggests, the installer referenced by the OP may indeed bundle "sponsorship" software. Each time FileZilla updates it shows a sponsorship screen stating who sponsored the latest update - but it's only shown the once and is not intrusive.

    • Like 1
×