[fpc-devel] property syntax extension

Paul Ishenin webpirat at mail.ru
Sun Oct 21 16:28:03 CEST 2007


Mattias Gaertner wrote:
> On Sun, 21 Oct 2007 21:55:45 +0800
> Paul Ishenin <webpirat at mail.ru> wrote:
>
>   
>> Florian Klaempfl wrote:
>>     
>>>> Only that the codetools can not use a ppureader.ppu from the RTL or
>>>> FCL. It can use the ppureader.pas, but not the .ppu.
>>>> Or use the XML approach as Florian
>>>>     
>>>>         
>>> I suggested :) Paul didn't like it that much
>>>
>>> He started also a wiki page:
>>> http://wiki.freepascal.org/Property_attributes 
>>>       
>> I still thinking that RTTI is much more useful than separate files.
>> To use separate files you need some framework to find them and parse.
>> If it is RTTI then existing tools can be easily extended to use new
>> feature. In case of Lazarus ppu, xml, rtti is not so different.
>>
>> But lets think of other applications of property attributes. For
>> example FastScript components (scripting engine of FastReports co.)
>> use RTTI to automatically describe pascal classes in order to use
>> them in script. Property attributes can store descriptions, value
>> area, and another useful info.
>>
>> Or my example with database components.
>>
>> TxxxDatabase = class
>> property TransactionModel: TTransactionModel attributes ['engines: 
>> ms-sql, oracle, sybase-asa'];
>> end;
>>
>> Using such attribute database components can easily check whether
>> this property applied to current engine.
>>
>> If this is stored in ppu, xml it will not used by component
>> developers. And once again - for Lazarus it is not a big difference.
>>     
>
> I got a practical question:
> Where and how should the hint be used/shown in the OI?
> If it is queried only manually (e.g. user moves mouse over property
> and waits for a hint), then a find declaration can be done and the
> comment next to the property can be shown. That's easy and we don't
> need any change or new syntax.
> OTOH if you want to check these flags in property editors to color
> misused properties, then TPropertyEditors must be extended.
>   
Such properties can be moved to separate Tab of object expector (like 
Events and Favorites) or marked with color.

Best regards,
Paul Ishenin.



More information about the fpc-devel mailing list