Jump to content
Lars Fosdal

The Delphi 11.2 release thread

Recommended Posts

Curious - I didn't have to re-install GetIt packages on the 11.2 upgrade.  Perhaps because I installed them to a custom directory?  I ran 11.2 installed, let it uninstall previous version and keep reg settings, and it installed 11.2 while my GetIt Packages remained installed/operational.

 

Share this post


Link to post
29 minutes ago, Darian Miller said:

I ran 11.2 installed, let it uninstall previous version and keep reg settings, and it installed 11.2 while my GetIt Packages remained installed/operational.

Did the same and had to re-install my GetIt packages. Default directory and using the ISO installer.

Share this post


Link to post

Libray path for 32 bit was retained. All other platforms got reset to a default IDE install.  Not the worst but...

Share this post


Link to post

This improvement is pretty interesting:

 

- Using CardPanels inside a frame

 

but then, it's a first version that is supposed to work, so perhaps is better to wait another update, before using in production releases.

 

 

Share this post


Link to post

I am having issues upgrading to 11.2.   I run the Web Installer keeping the registry options.  It appears to be going smoothly , uninstalling the previous version, then showing a message "Installing Main Application files" and in a few seconds it stops with a message "installation finished".

 

I can see the application files in the Programs directrory, it even installs a shortcut on the desktop.  But at the end of the installation I can see a running process bds.exe, that does nothing.  If I end the process and try to run Rad Studio from the shortcut the bds.exe process starts but nothing happens.

 

I remember that with previous version upgrades it would ask me for personalities and download tons of stuff from the cloud.   This time nothing of the sort.

 

Any clues?

 

Update:  The issue was related to addins.   After removing the references to Beyond Compare, Parnassus and Gexperts, bds.exe started and allowed me to select platforms.   It is now downloading and installing OK.  And it works well.

 

 

Edited by pyscripter

Share this post


Link to post

can anyone comment yet on Code Insight/LSP for Delphi?  specifically is there still that slight half-second delay when pressing ctrl+space to show the Code Insight window?  I know I'm being picky but I'm still on 10.2.3 because that half-second delay is like a small speed bump to my flow.  thanks!

Share this post


Link to post

I also installed 11.2 without issues. I used the migration tool. Web Install. Keep Existing registry option. No Android. No IOs. No Linux.

Restored the data (from migration tool). And I'm already working.

 

Since I have to re-install my components from GetIt ( including the styles), here's a tip. Run Delphi as Administrator and install all your getIt stuff.. It runs/installs a lot faster!

 

 

Edited by Clément

Share this post


Link to post
33 minutes ago, Vincent Parrett said:

Unfortunately they were implemented using a class helper, which now breaks Turbopack/SynEdit

Yes indeed.  Do you know how to IFDEF 11.2 vs 11.1?

Share this post


Link to post

Not sure you can.. the best option would be to change SetAdditionalPCREOptions to AddRawOptions - then it will compile in all supported versions. 

  • Thanks 1

Share this post


Link to post
4 minutes ago, pyscripter said:

Do you know how to IFDEF 11.2 vs 11.1?

{$IF Declared(RTLVersion111)}

{$IF Declared(RTLVersion112)}

  • Like 1
  • Thanks 2

Share this post


Link to post
11 minutes ago, Vincent Parrett said:

the best option would be to change SetAdditionalPCREOptions to AddRawOptions - then it will compile in all supported versions.

What happens then in Delphi 11.2?   Which record helper will be active?  I thought you are not allowed to have two helpers for the same class in the same scope?

Edited by pyscripter

Share this post


Link to post

The one that embarcadero created will be used first, the synedit one will be ignored. Which helper is used is dependant on where they are decleared, since embarcadero declared theirs closest to the actual class declaration theirs will be seen first rather than the one on synedit. 

  • Thanks 1

Share this post


Link to post

I allowed the ISO installer to uninstall 11.1.  The 11.2 installation process went smoothly.   However, I got all manner of access errors trying to start 11.2. Uninstalled and the ISO installer switched to web install (which I have never used for any version). Uninstalled and removed everything manually, now I'm three hours into another "web install" that I worry might again not work...

Share this post


Link to post

FWIW, the helpers embarcadero introduces in an update should disappear in the next major version, as those helpers were only used to avoid breaking dcu compatibility - so their methods will be rolled into the classes. At least that's the plan.

  • Like 2

Share this post


Link to post
25 minutes ago, Vincent Parrett said:

The one that embarcadero created will be used first, the synedit one will be ignored. Which helper is used is dependant on where they are decleared, since embarcadero declared theirs closest to the actual class declaration theirs will be seen first rather than the one on synedit. 

Actually it is the other way round.   From the docs:

 

Quote

You can define and associate multiple helpers with a single type. However, only zero or one helper applies in any specific location in source code. The helper defined in the nearest scope will apply. Class or record helper scope is determined in the normal Delphi fashion (for example, right to left in the unit's uses clause).

but "nearest scope" means closer to where the variable is declared.

 

Just to prove:

 

Project File:

program Project1;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  System.SysUtils,
  Unit1 in 'Unit1.pas';

type
  MyRecHelper2 = record helper for MyRec
    procedure SayHi;
  end;

{ MyClassHelper1 }

procedure MyRecHelper2.SayHi;
begin
  WriteLn('Hello!');
end;

var
  Rec: MyRec;

begin
  Rec.SayHi;
  ReadLn;
end.

Unit 1

 

unit Unit1;

interface

type

  MyRec = record

  end;

  MyRecHelper1 = record helper for MyRec
    procedure SayHi;
  end;

implementation

{ MyClassHelper1 }

procedure MyRecHelper1.SayHi;
begin
  WriteLn('Hi!');
end;

end.

Output:

Hello!

 

Edited by pyscripter

Share this post


Link to post
16 minutes ago, pyscripter said:

Actually it is the other way round.   From the docs:

If that were the case, then you wouln't need to change anything at all in SynEdit - but you do as it cannot see SetAdditionalPCREOptions.

 

18 minutes ago, pyscripter said:

but "nearest scope" means closer to where the variable is declared.

 

True, but with the regex they have created 2 helpers, and the TPerlRegex helper is the one causing the issue. 

 

Share this post


Link to post
6 minutes ago, Vincent Parrett said:

If that were the case, then you wouln't need to change anything at all in SynEdit - but you do as it cannot see SetAdditionalPCREOptions.

The issue was in the following:

 

procedure TRegExHelper.AddRawOptions(PCREOptions: Integer);
begin
  with Self do FRegEx.SetAdditionalPCREOptions (PCREOptions);
end;

FRegEx is defined in System.RegularExpressions and the nearest helper was in that unit.

 

By the way the issue is now fixed.  Thanks for reporting it.

Edited by pyscripter
  • Like 2

Share this post


Link to post

By the way and on record helpers, in my little program above,  if you move the declaration

 

var
  Rec: MyRec;

to Unit 1, interestingly, the output is "Hi".

Edited by pyscripter

Share this post


Link to post
6 hours ago, Vincent Parrett said:

If that were the case, then you wouln't need to change anything at all in SynEdit - but you do as it cannot see SetAdditionalPCREOptions.

There are some scenarios where which helper will be visible does not work as expected.

 

Last helper in scope is not always visible https://quality.embarcadero.com/browse/RSP-38448

 

 

  • Like 1

Share this post


Link to post
13 hours ago, Darian Miller said:

Curious - I didn't have to re-install GetIt packages on the 11.2 upgrade. 

In the webinar Q&A Marco Cantu was confirming that this update is binary compatible to the last version and that this was deeply tested before release.

But to be honest, I would never trust such information, no matter how deeply this was tested,  only because of saving a few extra clicks and re-builds of BPL's and DCU's.

I usually re-build everything after every update and had no "hard-to-find", "mystical" problems and crashes ever since, at least under Windows platform.

  • Like 3

Share this post


Link to post
17 minutes ago, Rollo62 said:

n the webinar Q&A Marco Cantu was confirming that this update is binary compatible to the last version and that this was deeply tested before release.

He also mentioned that there are some corner cases where it's not and he believes that we should not have those cases. Best is to recompile everything.

  • Like 1

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×