Florian Klämpfl wrote:
Am 19.09.2014 um 22:49 schrieb Boian Mitov:
On Fri, 19 Sep 2014, Adriaan van Os wrote:

Your remarks seem to imply that you think RTTI can be used to inspect any 
aspect of an object.
It was/is not meant for that.
<<<

Quite incorrect. All languages with modern RTTI allow for full object 
inspection, and that includes
Delphi 2010 and higher, C#, and even VB has it.
The fact is that FPC is just stuck in the last century, and the lack of any 
even remotely decent
RTTI in it makes it unsuitable for any modern development.

FPC supports what it's users are implementing. No more no less. This is how a 
community driven OSS
project works.

Thanks for the various reactions to my post about RTTI in FPC. I will wait to see what will be available in the future. To give some background, here is an explanation of what I am trying to accomplish.

The Pascal version of MacApp <http://en.wikipedia.org/wiki/MacApp>, which I am maintaining, has an object browser. That browser is disabled in the current source base, but it could be restored. The browser historically works through the MacApp root object which has

      procedure Fields
        ( procedure DoToField
              (     theFieldName      : Str255;
                    theFieldAddr      : Ptr;
                    theFieldType      : SInt16));

The Fields method must be implemented in every object type that adds fields (not properties, MacApp uses MacPas style classes). This scheme works, but adds a lot of code, like this

procedure TEvtHandler.Fields(procedure DoToField(fieldName: Str255; fieldAddr: Ptr; fieldType: SInt16));
    begin
      DoToField('TEvtHandler', nil, bClass);
      DoToField('fNextHandler', @fNextHandler, bObject);
      DoToField('fIdleFreq', @fIdleFreq, bLongInt);
      DoToField('fLastIdle', @fLastIdle, bLongInt);
      inherited Fields(DoToField);
    end;

etcetera.

 So, I started experimenting with the RTTI  to have this automated .....

Regards,

Adriaan van Os

_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel

Reply via email to