Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.133.109.211] |
|
Сообщ.
#1
,
|
|
|
прошу помочь
в listview сделал выбор мультиселект нужно чтобы при выборе одной или нескольких иконок(в моём случае) из листвью добавлялось в листбокс. Спасиб заранее. |
Сообщ.
#2
,
|
|
|
Спасибо. но вопрос не в том чтобы включить свойство в листвью мультиселект , а как передать в листбокс
|
Сообщ.
#3
,
|
|
|
на рисунке показано
с зажатым ctrl выделяю несколько или просто мышью выделяю необходимую область на листвью и выделяя при этом какое то количество элементов. С моим познанием о выделении нескольких элементов листвью ни хрена не прокатит))) по одному они добавляются со следующим кодом var z:integer; begin if listview1.ItemIndex = -1 then Exit; for z := 0 to listview1.Items.Count-1 do begin If listview1.ItemIndex = z then Listbox1.Items.Add(listview1.items.item[z].caption); end; Хелп , как добавить несколько Прикреплённый файл2017_11_28_165309.jpg (56,36 Кбайт, скачиваний: 582) |
Сообщ.
#5
,
|
|
|
блин круть) уже почти)) , но есть еще вопрос
procedure TForm1.ListView1Click(Sender: TObject); var Item: TListItem; begin Item := ListView1.Selected; while Item <> nil do begin ListBox1.Items.Add(Item.Caption); Item := ListView1.GetNextItem(Item, sdAll, [isSelected]); end end; сейчас если я выделяю например два элемента с ctrl в listbox два раза первым попадает тот элемент который я выделяю первым и потом остальное норм добавляется. если же я просто мышью выделяю определенную область, то всё норм. как можно решить с ctrl момент? чтоб не было дублирования первого элемента Прикреплённый файл2017_11_29_085553.jpg (29,69 Кбайт, скачиваний: 589) Прикреплённый файл2017_11_29_085615.jpg (31,32 Кбайт, скачиваний: 592) |
Сообщ.
#6
,
|
|
|
Цитата djmix777 @ как можно решить с ctrl момент? чтоб не было дублирования первого элемента Во-первых, не нужно вешать добавление элементов в листбокс на OnClick листвью. Если бы ты добавлял по одному элементу по двойному клику, это было бы еще ничего. Но при множественном выборе лучше делать добавление не "автоматом" в момент выделения, а по клику на спец.кнопке или контекстном меню. Во-вторых, дублирование может возникнуть не только из-за ctrl, но и просто потому, что юзер добавит один или несколько элементов, потом подумает и добавит еще несколько, прихватив уже добавленные. Поэтому для исключения дублирования, нужно добавлять элемент в листбокс только в том случае, если он еще не добавлен. Делается это элементарно s:=Item.Caption; if ListBox1.Items.IndexOf(S) < 0 then ListBox1.Items.Add(S); |
Сообщ.
#7
,
|
|
|
Идеаально)). вроде))
|