Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > перенос элементов между listbox


Автор: dize 13.11.2009, 17:21
В случае если использовать этот вариант, то при последовательном выборе значений из listbox1 и добавлении их в listbox2 идет замена, а не добавление..
Код

var
  StrList:TStringList;
  i:integer;
begin
  StrList:=TStringList.Create;
    try
      for i:=0 to ListBox1.Items.Count - 1 do
         if ListBox1.Selected[i] then  StrList.Add(ListBox1.Items[i]);
         ListBox2.Items.Assign(StrList);
      finally
  FreeAndNil(StrList);
  listbox1.DeleteSelected;
end
 
Как изменить этот кусок кода, чтобы элементы не заменялись, а именно добавлялись к списку listbox2, таким образом обеспечивая в сумме одинаковое количество элементов в двух листбоксах?

Автор: ~FoX~ 13.11.2009, 17:50
dize, Странный какой то код...
Код

if ListBox1.Selected[i] then begin 
  StrList.Add(ListBox1.Items[i]);
  ListBox2.Items.Add(ListBox1.Items[i]);
end; // if

Замена потому что по выходу из try ты делаешь FreeAndNil(StrList), соответственно при возникновении следующем события StrList уже пуст

Автор: dize 13.11.2009, 18:01
~FoX~, благодарю smile 

Автор: ~FoX~ 13.11.2009, 18:02
Просто интересно, а на кой StrList вообще там нужен?

Автор: Beltar 13.11.2009, 19:10
А в готовых формах дельфового репозитория, уже имется заготовка из 2-х листбоксов, между которыми можно кидать данные.

Автор: dize 16.11.2009, 15:19
Цитата(~FoX~ @  13.11.2009,  18:02 Найти цитируемый пост)
Просто интересно, а на кой StrList вообще там нужен?

Как видно не нужен smile 
Использовал по незнанию..

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)