сохранить значение варианта в свойстве объекта TStringList - PullRequest
4 голосов
/ 10 декабря 2010

Мне нужно сохранить значение варианта в TStringList, пока я пробую это

var
 list : TStringList;
 v   : OleVariant;

  List..AddObject('Item1',v);

или

  List..AddObject('Item1',TObject(v));

, но в обоих случаях код не компилируется, потому что приведенневерен или типы несовместимы.

, поэтому вопрос в том, как я могу сохранить вариантное значение в списке TStringlist?

Ответы [ 2 ]

8 голосов
/ 10 декабря 2010

Я думаю, что единственный способ - обернуть ваш вариант в классе и поместить ссылку на него в объекте списка строк. Конечно, вам нужно позаботиться о том, чтобы экземпляры оболочки были правильно освобождены при освобождении списка строк. Используя последние версии Delphi, это легко сделать с помощью параметра «OwnsObjects» списка строк.

1 голос
/ 10 декабря 2010

Я считаю, что вам нужно сохранить адрес записи варианта:

List..AddObject('Item1',TObject(@v));
...