Oh nice. Feel free to QP. Fails at least in Delphi XE8.
program E2003WithConstsInDescendingClassesConsoleProject;
{$APPTYPE CONSOLE}
uses
ParentUnit in 'ParentUnit.pas',
ChildUnit in 'ChildUnit.pas';
begin
end.
unit ParentUnit;
interface
type
TParent = class
// section can be strict protected, protected, public, published or nothing
const
InitialBooleanValue = False;
InitialIntegerValue = -1;
end;
implementation
end.
unit ChildUnit;
interface
uses
ParentUnit;
type
TChild = class(TParent)
// section can be strict protected, protected, public, published or nothing
const
// Initial and final values need to be different to test the behaviour
FinalBooleanValue = not InitialBooleanValue;
FinalIntegerValue = InitialIntegerValue + 1;
//[dcc32 Error] ChildUnit.pas(13): E2003 Undeclared identifier: 'InitialBooleanValue'
//[dcc32 Error] ChildUnit.pas(14): E2003 Undeclared identifier: 'InitialIntegerValue'
//[dcc32 Error] ChildUnit.pas(14): E2026 Constant expression expected
end;
implementation
end.
[WayBack] Oh nice. Feel free to QP. unit ParentUnit; interface type TParent = class …





