[Lazarus] LCL improvement idea

michael.vancanneyt at wisa.be michael.vancanneyt at wisa.be
Tue Jan 18 09:25:31 CET 2011



On Tue, 18 Jan 2011, Max Vlasov wrote:

> On Mon, Jan 17, 2011 at 2:08 PM, Michael Van Canneyt <michael at freepascal.org
>> wrote:
>
>>
>>
>> TLabelDefaults = Class(TPersistent)
>>  // Selected properties.
>> end;
>>
>> and
>>
>> Var
>>  LabelDefaults : TLabelDefaults;
>>
>> Which are applied as soon as a TLabel control is created.
>>
>>
>
> I liked the idea, but to understand it correctly... You placed it in "var",
> isn't it supposed to be placed on a form like any other TComponent? So once
> it added, every existing and future TLabel on the form will get new defaults
> unless they're explicitly changed by the user? And if the persistent is
> deleted all default will be back to objects default.

No, I actually meant a var, because I want it to be application-wide.

You could of course implement a 'form local'  variant for this as well. The
loading code could do something like

If Assigned(GlobalLabelDefaults) then
   ApplyDefaults(GlobalLabelDefaults);
LocalDefaults:=FindLocalDefaults(TLabelDefaults);
If Assigned(LocalDefaults) then
   ApplyDefaults(LocalDefaults);

>
> There are some challenges I think, for example how to behave with
> inheritance since in this case both component and default can be inherited
> and changed in the form.

Not a problem with the global one ?

>
> Also I thought that it would be useful to implement them like TField in
> database components. So for example make Defaults properties in the form
> that works like Fields in TDataSet descendants so on any placed component if
> there is registered corresponding TComponentDefault found, it's
> automatically added to Defaults designer or rather say as TField works, it
> simply added to form while also supported effectively by specially created
> designer. I know that it's more work to do in this case, but implementing
> this way will allow more convenient usage, since starting some number of
> defaults randomly placed components on the form are harder to track and use.

A good idea as well, but I would like to have an application-wide setting.

Well, with a global and a local version, it works almost like CSS :-)

Michael.




More information about the Lazarus mailing list