Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.11.2013, 20:23   #1
Winexcel
Форумчанин
 
Регистрация: 26.08.2013
Сообщений: 187
По умолчанию ListView Multiselect, узнать всё что выделено.

У компонента ListBox есть свойство MultiSelect, проверить все что выделил юзер можно таким способом:
Код:
for i:=0 to form1.ListBox1.Items.Count-1 do begin
if form1.ListBox1.Selected[i] then 
listbox1.items.delete(i);
А как сделать аналогично у компонента ListView при ViewStyle:=VsReport?
У него есть такое же свойство, но нет этой функции..
Winexcel вне форума Ответить с цитированием
Старый 07.11.2013, 20:28   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Свойство SelCount показывает кол-во выделенных в списке.
Перебрать все выбранные можно так:
Код:
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;
Человек_Борща вне форума Ответить с цитированием
Старый 07.11.2013, 21:04   #3
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,872
По умолчанию

Цитата:
Сообщение от Winexcel Посмотреть сообщение
У компонента ListBox есть свойство MultiSelect, проверить все что выделил юзер можно таким способом:
Код:
for i:=0 to form1.ListBox1.Items.Count-1 do begin
if form1.ListBox1.Selected[i] then 
listbox1.items.delete(i);
Проверить можно. Удалять в прямом цикле for нельзя.
northener вне форума Ответить с цитированием
Старый 07.11.2013, 22:09   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

northener, если for .. downto .. do, то можно.
Человек_Борща вне форума Ответить с цитированием
Старый 07.11.2013, 22:28   #5
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,872
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
northener, если for .. downto .. do, то можно.
Тогда это будет не закрытый, а открытый перелом
northener вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Listview как узнать выделина строка? Кольша Мультимедиа в Delphi 3 31.08.2011 14:35
ListView как узнать есть ли строки? Кольша Мультимедиа в Delphi 4 27.08.2011 14:17
ListView как узнать последнюю строку? Кольша Мультимедиа в Delphi 10 22.08.2011 17:02
[C# + WPF] ListView. Узнать выделена ли строка в нём. ListView.View == GridView. Casper-SC WPF, UWP, WinRT, XAML 2 12.08.2010 19:04
Узнать количество итемов в ListView... TwiX Общие вопросы Delphi 10 02.08.2009 14:31