Сегодня с помощью LiveBindings попробуем связать 2 списка таким образом…
В ListBox1 будет создаваться список из 10 элементов и автоматически переноситься в ListBox2 c помощью LiveBindings. Для этого с палитры компонентов нам понадобится BindingList1
2 раза кликаем на Bindinglist1 и в открывшемся редакторе жмем Ins… После чего выбираем TBindList
Далее, в редактор добавится BindList1. Выделим его и откроем инспектор объектов. Заполним SourceComponent и ControlComponent.
Далее, жмем на “многоточие” FormatControlExpressions и в появившемся окне жмем Ins, чтобы вставить новую строку… Выделяем её и идем в инспектор объектов. Там в 2-х строках прописываем одно и тоже слово items
Последний шаг, прописываем код…
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
procedure TForm1.Button1Click(Sender: TObject); begin stringlist.Add(floattostr(Random)); Listbox1.Items.Assign(Stringlist); bindlist2.FillList; // <<Заполняем ListBox2 end; procedure TForm1.FormCreate(Sender: TObject); var i:integer; begin Randomize; Random; Stringlist:=tstringlist.Create; for i := 0 to 9 do stringlist.Add(floattostr(Random)); Listbox1.Items.Assign(Stringlist); bindlist2.FillList; // <<Заполняем ListBox2 end; |
Конечно, для решения данной задачи – путь не самый оптимальный. Самым простым было бы сделать традиционный Assign в Create формы и на обработке кнопки. Но для демонстрации LiveBindings и ее части – связывания списков самое то.