Michael Van Canneyt wrote:
I never understood the need for it. RTTI is more than enough
for 99.99% of the cases.
Imagine you have a db framework which maps delphi classes to database tables. It reads class properties from the rtti and creates db tables automatically.

For example:

TStudent = class(TPersistent)
published
 property ID: Integer read FID write FID;
 property Name: String read FName write FName;
 property Age: Integer read FAge write FAge;
 property Group: String read FGroup write FGroup;
end;

How db framework can create a table based on this information? It needs some more info about field types, primary keys.

Now using attributes we can extend our class declaration:

TStudent = class(TPersistent)
published
 [TDBField('Integer', 'primary key')]
 property ID: Integer read FID write FID;
 [TDBField('VarChar(100)')]
 property Name: String read FName write FName;
property Age: Integer read FAge write FAge; // db field type can be guessed from the property type here
 [TDBField('VarChar(20)')]
 property Group: String read FGroup write FGroup;
end;

This is just one example. If you remember we thought to use property attributes for the LCL previously.

Best regards,
Paul Ishenin.
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to