The reason I use RTTI controls is to synchronize between non-visible content within a class and visual content of the control without any coding.
I added a TTIListbox, linked it to the Items of the "normal" Listbox (TIListbox1.Link.TIObject = Listbox1, TILisbox1.Link.PropertyName = 'Items') --> no effect, neither at runtime, nor at designtime: I don't see the Listbox.Items in the TIListbox.
The same when I link a TIMemo and a "normal" Memo via the "Lines" property.
Regarding TTIListBox, I confirmed the following works.
listbox1.Items.Text := 'List 1'#13#10'List 2'#13#10'List 3';
tilistbox1.link.TIObject := listbox1;
tilistbox1.link.tipropertyname := 'itemindex';
tilistbox1.items.CommaText := 'i1,i2,i3';
tilistbox1.Link.AliasValues.CommaText := '0=i1,1=i2,2=i3';
You can type in Listbox1.Items, TIListBox1.Link.TiObject and TIListBox1.Link.TiPropertyName in object inspector at design time, but you have to define contents of TTListBox1.Items and TIListBox1.Link.AliasValues during runtime.
And regarding TTIMemo and TMemo, you can synchronize the content of the two controls by linking TTIMemo.Link.TIPropertyName to TMemo.Lines.
But you should be aware of one thing.
When normal control is changed, the content of RTTL control is changed immediately. If you type in one character in normal memo, TIMemo will show them.
The vice versa is not true --- content of normal control is updated AFTER YOU LEAVE RTTI CONTROL. It seems that reverse update is done at ONEDITINEDONE or similar event.
TStringList only has public properties...
You are right. I actually use TStringList descendants so that I can redefine a property under published section.
Why don't you simply assign the stringlist to the Lines of a "normal" TMemo? (Memo1.Lines.Assign(SL))
I didn't know Assign function. Does this mean that I can change the content of SL via editing the content of Memo1, and vice versa? If this is available, I don't have to use RTTL controls in my applications.
-----------------------------------
ADDITION:
I hope somebody add the usage of AliasValues to the document somewhere. I could find this only through trial and error.