I made a simple? program to test this --- My quick conclusion is not to use TStringList.OwnsObject if it has to be used with assign.
You will see a column of four buttons in the lower-right side. There are four actions.
1) created orgStrings, which is a TStringList,
2) Copy it to ValueListEditor.Strings (via Assign),
3) and copy back from ValueListEditor.Strings (via Assign),
4) Free the stringlist (orgStrings).
Currently orgStrings.OwnsObject := False. If you press down in the order, you will see no problem.
Now, after pressing first and second buttrons, try to add and delete some list by pressing buttons in the low-left side. You will see the changes in the ValueListeditor. Then do action 3 and action 4. It's fine.
Now, check the orgStrings OwnsObjects, then you can do : Actions 1,2, and 4.
But not 1,2,3, and 4 -- there are problem in freeing the object.
Please advise me on this if I missed anything. What I'm trying to finally is to link objects in the ValueListEditor to the RTTI controls. Currently they are not linked.