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