Jump to content

Uwe Raabe

Members
  • Content Count

    2588
  • Joined

  • Last visited

  • Days Won

    151

Posts posted by Uwe Raabe


  1. With Delphi 12 the Index type of TList as well as Count has changed from Integer to NativeInt. While this has no effect in 32 bit, with 64 bit it definitely has.

     

    Check all descendants of TList if there are any declarations of properties (f.i. Items) or methods with Index type Integer which act as overloads for the base declarations. Then change these Integer types to NativeInt.

    • Thanks 1

  2. The following code lists 355480 files in less than 15 seconds on my system.

    program TestGetFiles;
    
    {$APPTYPE CONSOLE}
    
    {$R *.res}
    
    uses
      System.SysUtils,
      System.IOUtils,
      System.Diagnostics;
    
    procedure Main;
    begin
      var sw := TStopwatch.StartNew;
      var arr := TDirectory.GetFiles('C:\Windows', '*', TSearchOption.soAllDirectories);
      Writeln(Format('%d Files, %d ms', [Length(arr), sw.ElapsedMilliseconds]));
    end;
    
    begin
      try
        Main;
      except
        on E: Exception do
          Writeln(E.ClassName, ': ', E.Message);
      end;
      Readln;
    end.

     

    The dir command needs a lot of time to display the files, while the Delphi code avoids that.


  3. It may depend on the uses list and its order. The different Stat units register different default values:

    {FireDAC.Phys.SQLiteWrapper.FDEStat}
    initialization
      TSQLiteLib.GLibClasses[slDefault] := TSQLiteLibFDEStat;
      TSQLiteLib.GLibClasses[slFDEStatic] := TSQLiteLibFDEStat;
    
    {FireDAC.Phys.SQLiteWrapper.SSEStat}
    initialization
      TSQLiteLib.GLibClasses[slDefault] := TSQLiteLibSEEStat;
      TSQLiteLib.GLibClasses[slSEEStatic] := TSQLiteLibSEEStat;
    
    {FireDAC.Phys.SQLiteWrapper.Stat}
    initialization
      TSQLiteLib.GLibClasses[slDefault] := TSQLiteLibStat;
      TSQLiteLib.GLibClasses[slStatic] := TSQLiteLibStat;

    Manually adding FireDAC.Phys.SQLiteWrapper.FDEStat to the uses may solve the problem. I'd rather set the mode to an explicit value instead relying on a volatile default.


  4. 6 minutes ago, mvanrijnen said:

    by default they do not have a version in it

    What makes you think so? At least in my standard installation these folders are located under c:\Users\Public\Documents\Embarcadero\Studio\xx.x and c:\Users\<user>\Documents\Embarcadero\Studio\xx.x

    • Like 1

  5. 7 minutes ago, mvanrijnen said:

    Maybe the problem is that the Beta testing is done on "clean" systems only ?

    Most likely, yes, but there are several beta testers having a mixed version setup or even using their productive environment. As @Angus Robertson mentioned, there are other factors involved here that made this slip through.


  6. 17 minutes ago, gioma said:

    But what seems normal to you?

    Embarcadero knows about it and is working on an official solution.

     

    And before someone claims that could have been found during the beta: Most of the GetIt stuff is not available during beta until almost the last day and the majority of beta testers install in a dedicated environment without any prior Delphi version present. Also, not everyone makes use of all what is available in GetIt.

    • Like 1

  7. To have the Parnassus plugins work in Delphi 12 as well as Delphi 11.3 on the same machine you need to do either of this depending on your situation:

    • Before installing the Delphi 12 plugin: In folder c:\Program Files (x86)\Common Files\ParnassusShared rename ParnassusCoreEditor.dll into ParnassusCoreEditor_XAlexandria.dll
    • After installing the Delphi 12 plugin: Copy the 11 version of ParnassusCoreEditor.dll from the appropriate CatalogRepository folder as ParnassusCoreEditor_XAlexandria.dll into the mentioned folder
    • Like 3
    • Thanks 1

  8. The reason for these "Whole Word" problems was that there was only one setting in the registry for Search (Ctrl-F) and Search in Files (Ctrl-Shift-F). In D12 these are separate settings.

     

    So, if there are still problems they have another cause and steps to reproduce are mandatory to get this fixed.


  9. 2 hours ago, pyscripter said:

    Unfortunately though, your [RSP-35301] Option to design in Screen PPI but save in 96 PPI - Embarcadero Technologies is not, despite the many votes it got.  And by the way thanks for your article.  Highly recommended.

    The lack of implementing that feature request was the driving force behind writing that article. As long as everybody steps away from designing in High DPI the collected bug reports will only cover the obvious cases but miss the deeper ones. Thus I decided to use the form designer in High DPI for at least one of my projects and see how it goes. Obviously I had to develop a strategy and some workarounds to make it usable in the first place. Publishing it is based on the hope that others also step on that ship and share their findings, too.

    • Like 4

  10. 1 hour ago, JonRobertson said:

    Adding unit scopes to each unit reference is on the to-do list.

    You can have this for free:

    1. Open MMX properties and navigate to Pascal - Sorting
    2. Under Format unit uses clauses check Group and sort uses

    Now when you format the uses clause (with Ctrl-Alt-U while the cursor is inside a uses clause) MMX does the following:

    • Resolve any unit aliases
    • Resolve all unit scope names
    • Group the units as configured (see below)
    • Compress and wrap each group according to the settings

    The groups are configured per project in the MMX Project options setting. If the entry for Groups is cleared neither grouping nor sorting is done.

     

    Also these Project options have an Auto Format checkbox, which when checked forces the uses clause formatting whenever MMX manipulates a uses clause. 

     

    My personal preference would be to format the uses clauses without any other changes done to keep version control happy. This can be achieved by a command line tool available on GitHub: UsesCleaner

    It provides almost the same functionality as MMX, but targets complete projects instead of single units.

     

    • Like 1
×