Problem with Delphi 10.3.3 (Rio)

WRieder
WRieder used Ask the Experts™
on
It appears that this Version of Delphi has removed access to private Fields.
JvFormStorage produces an AccessViolation when trying to exctract Sections.

Code Snippet:

function TMemIniFileHelper.ValueExists(const Section, Ident: string): Boolean;
var
  I: Integer;
  Strings: TStrings;
  Sections: TStringList;
begin
  {$IFDEF RTL310_UP} // 10.1 Berlin removed the access to private fields
  Sections := TMemIniFileAccess(Self).FSections;
  {$ELSE}
  Sections := Self.FSections;
  {$ENDIF RTL310_UP}
  I := Sections.IndexOf(Section);
  if I >= 0 then
  begin
    Strings := TStringList(Sections.Objects[I]);
    I := Strings.IndexOfName(Ident);
    Result := I >= 0;
  end else
    Result := False;
end;
Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
ste5anSenior Developer

Commented:
Don't have access to this version, but it sounds like a visibility modifier problem. Check the TMemIniFileAccess class and its modifier in both your systems.

Otherwise it's intentional, see Closing the Class Helpers Private Access Loophole.

In this case it simply means, that you did something in the past, which simply wasn't correct, but allowed. So, when you need to access such a private member, then change the base class.
Owner
Commented:
Thank you ste5an;
I was able to get a newer Jedi installation, which has solved my problem

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial