Property attributes

From Lazarus wiki
Revision as of 15:53, 24 March 2012 by Vincent (talk | contribs) (Text replace - "delphi>" to "syntaxhighlight>")
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Syntax Diagram

 PropertyDeclaration ::= PROPERTY Identifier [PropertyInterface] [PropertySpecifiers]   [Directives]
PropertySpecifiers ::= [ ... ] [ ... ] [ATTRIBUTES AttributesArray]
AttributesArray ::= '[' (AttributeDeclaration [, AttributeDeclaration]) ']'
AttributeDeclaration ::= '<string>':'<string>'

Declaration Examples

TmenuItem = class(...)
...
property Detachable: Boolean read FDetachable write SetDetachable attributes
 ['widgetsets:qt,gtk,win32', 'implementor:Vasya Pupkin', 'creation-date:01.01.2007'];
...
end;
TxxxDatabase = class(...)
...
property TransactionModel: TTransactionModel read FtransactionModel write
 SetTransactionModel attributes ['engines:firebird,oracle,sybase-asa'];
...
end;

How to store additional info

There were two suggestions about the place for the property attributes:

  1. RTTI. Advantage - easier access from application. Disadvantage - bigger final executable.
  2. PPU. Advantage - info will not be added to executable. Disadvantage - more complicated way of accessing data.

As a result of the discussion PPU storage has been selected.