Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ListView, Как удалить выделенные элементы 
:(
    Опции темы
ZBugz
Дата 15.6.2006, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 636
Регистрация: 15.2.2006
Где: Москва

Репутация: 6
Всего: 6



Привет всем. Есть ListView в режиме Report.
Подскажите пожайлуста. А как удалить, к примеру, 3-ю и 5-ю строчку или какую комбинацию я захочу.

Вот так:

Код

DList.Selected.ListView.DeleteSelected;


Удаляет, но строки не сдвигаются, а просто пустые становятся  smile 

Помогите  smile  
PM MAIL   Вверх
Matematik
Дата 15.6.2006, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1027
Регистрация: 11.3.2006

Репутация: 17
Всего: 50



for j:=listview.count-1 downto 0 do
  if listview.selected[j] then 
    listview.items.delete(j) 
PM MAIL WWW ICQ   Вверх
skyboy
Дата 15.6.2006, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 4
Всего: 260



ZBugz, а так: "ListView1.Invalidate" делать после удаления выделенных не пробовал? 
PM MAIL   Вверх
ZBugz
Дата 15.6.2006, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 636
Регистрация: 15.2.2006
Где: Москва

Репутация: 6
Всего: 6



Ни
Код

for j:=listview.count-1 downto 0 do
  if listview.selected[j] then 
    listview.items.delete(j)


ни

Код

ListView1.Invalidate


Не пашет  smile 

Хочу рабучий пример  smile  
PM MAIL   Вверх
Matematik
Дата 15.6.2006, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1027
Регистрация: 11.3.2006

Репутация: 17
Всего: 50



Цитата(ZBugz @  15.6.2006,  15:31 Найти цитируемый пост)
Хочу рабучий пример

А я очень хочу миллион рублей.
 smile 

lv1.DeleteSelected 
PM MAIL WWW ICQ   Вверх
skyboy
Дата 15.6.2006, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 4
Всего: 260



у меня работает.
Код

ListView1.DeleteSelected;
ListView1.Invalidate;

Скинь проект. посмотрим. 
PM MAIL   Вверх
Alexeis
Дата 15.6.2006, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



В общем нужно указывать тип сортировки
например так:
Код

procedure TForm1.btn1Click(Sender: TObject);
begin
  lv1.Items.BeginUpdate;
  lv1.Selected.Delete;
  lv1.Items.EndUpdate;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 lv1.SortType := stText;
end;
 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
RA
Дата 15.6.2006, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


Профиль
Группа: Участник Клуба
Сообщений: 3497
Регистрация: 31.3.2002
Где: Лес

Репутация: 14
Всего: 115



Фсё намного проще 

Код

ListView1.ItemFocused.Delete;
 
PM   Вверх
Romikgy
Дата 15.6.2006, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 26
Всего: 146



может Repaint; поможет 


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Alexeis
Дата 15.6.2006, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



RAdmin, 
Цитата(ZBugz @  15.6.2006,  12:59 Найти цитируемый пост)
Удаляет, но строки не сдвигаются, а просто пустые становятся  

Ваш код также не сдвигает строки...

Добавлено @ 14:57 
Цитата(Romikgy @  15.6.2006,  13:53 Найти цитируемый пост)
может Repaint; поможет 

Не поможет нужно либо описать свой способ сортировки либо использовать встроенные, так как по умалчанию ничего не сортируется. 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
ZBugz
Дата 15.6.2006, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 636
Регистрация: 15.2.2006
Где: Москва

Репутация: 6
Всего: 6



Все ето:
Код

procedure TForm1.btn1Click(Sender: TObject);
begin
  lv1.Items.BeginUpdate;
  lv1.Selected.Delete;
  lv1.Items.EndUpdate;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 lv1.SortType := stText;
end;

+
Код

ListView1.DeleteSelected;
ListView1.Invalidate;

+
Код

ListView1.ItemFocused.Delete;


НЕ работает  smile 

Проше сказать так: мне надо чтоб я удалял троки к примеру как в Reget или другой качалке.  smile  
PM MAIL   Вверх
Alexeis
Дата 15.6.2006, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



ZBugz, Очень странно у меня код
Цитата(ZBugz @  15.6.2006,  14:06 Найти цитируемый пост)
procedure TForm1.btn1Click(Sender: TObject);    
begin    
  lv1.Items.BeginUpdate;    
  lv1.Selected.Delete;    
  lv1.Items.EndUpdate;    
end;    
procedure TForm1.FormCreate(Sender: TObject);    
begin    
 lv1.SortType := stText;    
end;

работает так как нужно, даже при
Цитата(RAdmin @  15.6.2006,  14:12 Найти цитируемый пост)
ListView1.ViewStyle:= vsList;

Видимо проблема с чем-то другим
 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
RA
Дата 15.6.2006, 15:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


Профиль
Группа: Участник Клуба
Сообщений: 3497
Регистрация: 31.3.2002
Где: Лес

Репутация: 14
Всего: 115



Работает:

Код

procedure TForm1.Button1Click(Sender: TObject);
var WC:TViewStyle;  i:integer;
begin

 for i:=0 to ListView1.SelCount-1 do
  ListView1.ItemFocused.Delete;
  WC:=ListView1.ViewStyle;
  ListView1.ViewStyle:= vsList;
  ListView1.ViewStyle:= WC;
end;


PS:
ZBugz, тыб уточнил в начале какой у тебя TViewStyle ато людям приходится угадывать.
ибо в vsList и vsReport такого бага нет.   
PM   Вверх
Alexeis
Дата 15.6.2006, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



ZBugz, Если что-то не работает нужно указать что конкретно (не удаляется, не сортируется, не удаляются пустоты или что-нибудь другое) 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
ZBugz
Дата 15.6.2006, 15:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 636
Регистрация: 15.2.2006
Где: Москва

Репутация: 6
Всего: 6



Цитата

PS:
ZBugz, тыб уточнил в начале какой у тебя TViewStyle ато людям приходится угадывать.
ибо в vsList и vsReport такого бага нет.    


Я ж в начале написал же Report.  smile 

Цитата

Если что-то не работает нужно указать что конкретно (не удаляется, не сортируется, не удаляются пустоты или что-нибудь другое) 


И ето отоже написал.  smile  

Это сообщение отредактировал(а) ZBugz - 15.6.2006, 15:37
PM MAIL   Вверх
Alexeis
Дата 15.6.2006, 15:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



ZBugz, 
Цитата(ZBugz @  15.6.2006,  14:32 Найти цитируемый пост)
И ето отоже написал. 

Описано что не работает в вашем коде, а не в нашем. В режиме  Report - у меня вообще все представленные варианты работают. 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
ZBugz
Дата 15.6.2006, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 636
Регистрация: 15.2.2006
Где: Москва

Репутация: 6
Всего: 6



Код как код.
я уже не знаю как еще спросить.  smile 
Multiselect:=True, vsReport.

Имею к примеру 5 строк и 5 столбцов.

Выделяю первую строчку полность и третью. Пришу ListView.DeleteSelected, он строки удаляет, но они остаются выделенными и пустыми.
Т.Е. получается, что при удалении они не убираются вообще, а остаются. Мне нужно чтоб они вообще проопали.

Получается, что типа:
Строка
1-пусто
2-Данные
3-пусто
4-данные
5-данные

А нужно чтоб, после удаления было так:
1-данные
2-данные
3-данные 
PM MAIL   Вверх
skyboy
Дата 15.6.2006, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 4
Всего: 260



ZBugz, у тебя "рабочий" проект? попробуй провернуть в пустом приложении(где только и есть, что listview на форме... ну, и кнопка ещё - и больше ничего), потом, если не заработает, закинь все файлы проекта в архив и прикрепи к посту. Посмотрим, что там не так... 
PM MAIL   Вверх
Alexeis
Дата 15.6.2006, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



Я немного переделал код
Matematik, 
и у меня получилось так как вы хотели
Код

procedure TForm1.btn1Click(Sender: TObject);
var
 j:integer;
begin
  for j:= lv1.Items.Count - 1 downto 0 do
  if lv1.Items[j].Selected
  then
    lv1.items.delete(j)
end;
 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
ZBugz
Дата 15.6.2006, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 636
Регистрация: 15.2.2006
Где: Москва

Репутация: 6
Всего: 6



Спасибки.  smile  smile 
Код

procedure TForm1.btn1Click(Sender: TObject);
var
 j:integer;
begin
  for j:= lv1.Items.Count - 1 downto 0 do
  if lv1.Items[j].Selected
  then
    lv1.items.delete(j)
end;


Все заработало.

 smile 
 
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0685 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.