Link to home
Start Free TrialLog in
Avatar of WRieder
WRiederFlag for South Africa

asked on

Problem with Delphi 10.3.3 (Rio)

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;
Avatar of ste5an
ste5an
Flag of Germany image

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.
ASKER CERTIFIED SOLUTION
Avatar of WRieder
WRieder
Flag of South Africa image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial