On Thu, 18 Nov 2010, Alberto Manganaro wrote:
Hi,
first of all, as it's the first time I write here, I'd like to thank all the
people involved in the development/testing/mantaining/etc of Lazarus :-)
I would like to understand better how to deal with the properties of a visual
component. My problem is the following: I'm writing a component that has a
property of class TStringList. This property is published, so I can correctly
access at design-time when I put my new component in a form. But if I assign
some values to the TStringList at design-time, it seems that at run time that
string list is empty.
Never use TStringList as a property type, always use TStrings.
(but initialize your field with a TStringList instance)
Now, if I initialize that list through code (it means that I do this run
time, after the component is created) everything is fine. My doubt is that in
the constructor of the component the string list is created and initialized,
so maybe this is the problem. But if I don't create the string list in the
constructor of the component, of course I have an error.
Can someone please explain me how properties of a component are managed at
design-time? How can I set my string list at design-time and correctly have
the values available at run-time?
The write must always happen through a setter procedure, and in the setter
you must assign the strings:
Property MyProp : TStrings Read FMyProp Write SetMyProp;
Where SetMyProp is implemented as
Procedure TmYCOmponent.SetMyProp(AValue : TStrings);
begin
if FMyProp=AValue then exit;
FMyProp.Assign(AValue);
end;
Michael.
Thanks!
A.
--
Alberto Manganaro
Milano Chemometrics and QSAR Research Group
Department of Environmental Sciences
University of Milano-Bicocca P.zza della Scienza, 1
20126 Milano - Italy
http://michem.disat.unimib.it/chm/
--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus