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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ListView? Есть проблемка! 
V
    Опции темы
Pariah
  Дата 25.4.2006, 17:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 95
Регистрация: 25.1.2006

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



Дарова народ!
Подскажите исходный код как при нажатии на кнопку удалить определённый Items ?
Мой исходный код :
Код

procedure TForm1.Button3Click(Sender: TObject);
begin
ListView1.Items.Destroy;
ListItem.Update;
\\или 
procedure TForm1.Button3Click(Sender: TObject);
begin
ListView1.Items.Destroy;
end;
\\или 
procedure TForm1.Button3Click(Sender: TObject);
begin
ListView1.Items.Delete;\\ а здесь ваще вылетает баг что типа надо задать параметр а какой  \\я немогу понять какойто index : integer ;
End;
 
PM MAIL   Вверх
Snowy
Дата 25.4.2006, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

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



Код

  ListView1.Items.Delete(Index);
где Index - № итема. 
PM MAIL   Вверх
Pariah
Дата 26.4.2006, 07:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 95
Регистрация: 25.1.2006

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



пасиб!
а как удалить так чтоб при наведении курсором выделялся определённый items, считывался его номер и потом удалялся по нажатию на кнопарь smile  
PM MAIL   Вверх
sexton
Дата 26.4.2006, 07:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sexton=Пономарь (eng)
**


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

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



Код

ListView1.Items.Delete(ListView1.Items.ItemIndex);


Цитата

Read ItemIndex to determine which item is selected. The first item in the list has index 0, the second item has index 1, and so on. If no item is selected, the value of ItemIndex is -1. If the list control supports multiple selected items, ItemIndex is the index of the selected item that has focus.

Set ItemIndex programmatically to select an item by passing in the index value.
 
PM MAIL WWW ICQ   Вверх
Snowy
Дата 26.4.2006, 09:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

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



На событие кнопки пиши:
Код

var
  i: integer;
begin
  i := ListView1.Items.ItemIndex;
  if i >=0 then ListView1.Items.Delete(i);
end;

sexton, нужна проверка, т.к. пункт может быть и не выделен. В этом случае вылетит по ошибке. 
PM MAIL   Вверх
zalex
Дата 26.4.2006, 10:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 13.5.2005

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



А если выделенных несколько, то анализируй в цикле свойство Items[i].Selected

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


Шустрый
*


Профиль
Группа: Участник
Сообщений: 95
Регистрация: 25.1.2006

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



Всем пасиб!
Только вы чуть-чуть ошиблись!
Правильнее будет так :
Код

procedure TForm1.Button3Click(Sender: TObject);
var
ListItem : TListItem ;
 i: integer;
  begin
   i := ListItem.Index;
   if i >=0 then ListView1.Items.Delete(i);
  ListItem.Update;
 end;


 
PM MAIL   Вверх
Snowy
Дата 26.4.2006, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

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



Цитата(Pariah @  26.4.2006,  14:15 Найти цитируемый пост)
Только вы чуть-чуть ошиблись!
Это вряд ли.

Цитата(Pariah @  26.4.2006,  14:15 Найти цитируемый пост)
var    
ListItem : TListItem ;    
 i: integer;    
  begin    
   i := ListItem.Index;    
   if i >=0 then ListView1.Items.Delete(i);    
  ListItem.Update;    
 end;
А вот это действительно странно и непонятно.
Похоже, что это вы чуть-чуть ошиблись...

Добавлено @ 16:05 
Этот код ну уж совсем никуда не годится. 
PM MAIL   Вверх
Pariah
Дата 26.4.2006, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 95
Регистрация: 25.1.2006

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



всё может быть, лично у меня(под delphi7) при компиляции багов невозникло и при нажатии на кнопарь
удалить всё сделалось без багов smile  
PM MAIL   Вверх
Snowy
Дата 26.4.2006, 17:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

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



Ну тогда давай разбирать:

Код

var    
  ListItem : TListItem;    // зачем эта переменная???
  i: integer;    
  begin    
   i := ListItem.Index; // А чему равен ListItem? Ничему. Компилятор так и ругается - не инициализирована
   if i >=0 then ListView1.Items.Delete(i); // теперь мы удаляет из листа первую строку. Вроде хотели выбранную...
  ListItem.Update; // Апдейт чего? ListItem указывает в пустоту...
 end;
 
PM MAIL   Вверх
Pariah
Дата 27.4.2006, 11:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 95
Регистрация: 25.1.2006

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



Код

var    
  ListItem : TListItem;    // для того чтобы Delpi поняло к чему мы обращаемся!
// а обращаемся мы к полю ввода данных для itemsa онo же ListItem.
  i: integer;    
  begin    
   i := ListItem.Index; // Почему компил ругается незнаю а ListItem описывать ненадо т.к это по стандарту поле ввода данных в Items.
   if i >=0 then ListView1.Items.Delete(i); // этот код написал ты, сам и ответь!
  ListItem.Update; // так нажимаем на кнопарь apply в ListItem’e.
 end;

  

Это сообщение отредактировал(а) Pariah - 27.4.2006, 11:49
PM MAIL   Вверх
Демо
Дата 27.4.2006, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(Pariah @  27.4.2006,  11:48 Найти цитируемый пост)
этот код написал ты, сам и ответь!


Вообще-то, у того, кто написал, i принимает вполне конкретное значение(в отличие от твоего).

Цитата(Pariah @  27.4.2006,  11:48 Найти цитируемый пост)
Почему компил ругается незнаю


Вот и узнай сначала. Обращаешься ты к неинициализировнному объекту, получая мусор, либо AV.

Цитата(Pariah @  27.4.2006,  11:48 Найти цитируемый пост)
 а обращаемся мы к полю ввода данных для itemsa онo же ListItem.


Это бред. Обращение к TListItem без TListView не имеет смысла.



Цитата(Pariah @  27.4.2006,  11:48 Найти цитируемый пост)
так нажимаем на кнопарь apply в ListItem’e.


Нет понятия "Кнопарь". Есть понятие "Кнопка". 


--------------------
    
PM MAIL ICQ Skype   Вверх
Snowy
Дата 27.4.2006, 12:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

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



Pariah, поясняю.  ListItem, на который ты постоянно ссылаешься в своем коде, совершенно не имеет никакого отношения к ListView. 
Проведу аналогию:
Код
var     
  B1 : TButton;
  i: integer;     
  begin     
   i := B1.Width;
   if i >=0 then Form1.Caption := 'Слон';
  B1.Click;
 end;
Какая логика этого кода, учитывая, что B1 не существует?
Я вроде дал нормальный код. Чем он тебя не устроил? 
PM MAIL   Вверх
Pariah
Дата 28.4.2006, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 95
Регистрация: 25.1.2006

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



да код гуд,только вот при при компиляции вылетал баг что неописан ItemIndex!
 
PM MAIL   Вверх
Snowy
Дата 28.4.2006, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

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



Просто навскидку накидал.
Правильно будет i := ListView1.ItemIndex; 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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