When registering a class at run-time using DefineClassByRTTI some methods are not registered and I can't figure out what the difference is between these methods and the ones that are successfully registered. This happens only since Delphi 13 (32-bit and 64-bit). Delphi 12, 32-bit: works as expected.
Project: Windows VCL 64-bit
Tested scripter versions: 7.37 and 8.1
// Class methods:
TMyClass = class(TDataModule)
public
[...]
function LoadRawDataInfo(RawData, EntityData: TFDMemTable; Entity: TEntity; Uuid, FileFilter: string): Boolean; // not registered
function LoadRawDataInfoActual(RawData, MeasData, CharData: TFDMemTable; Uuid, FileFilter: string): Boolean; // registered as expected
[...]
end;
The project has more than 1 million code lines. The described class has 8000 lines. I really don't know how to extract something that will be compilable at your end.
Scratch that! Delphi version was not the only difference.
The root cause was a change in type TEntity - thanks for the hint, Wagner!
The working version has enum values with consecutive values. The non-working version has that one value which was commented out (etyOrder).